Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Excel VBA Suchfunktion

Empfohlene Antworten

Veröffentlicht

Hallo,

ich versuche mich gerade in vba excel und weiß nicht weiter.

und zwar hab ich 3 von einander abhängige comboboxen ,

sprich ich muss in der ersten was auswählen, und kann dann erst in der zweiten box eine spezifischere auswahlt treffen usw..

und wenn ich in allen comboboxen was ausgewählt habe soll das program nach diesen begriffen suchen.

sprich ich geb in der ersten box an ob ich männlich oder weiblich bin.

in der zweiten meine größe und in der dritten t-shirt, hose oder bla

und jetz soll das program aus zB einer excel tabelle alle passenden kleidungsstücke raussuchen.

ist sowas möglich?

wenn ich nur nach einer sache suche zB t-shirt kann ich ja eine globale suche machen und mir alles ausgeben lassen was den begriff t-shirt beinhaltet.

aber bei mehren sachen über comboboxen weiß ich nicht weiter

gruß jim

Für sowas würd ich bei gott keine Excel tabelle benutzen, das schreit förmlich nach ner richtigen Datenbank.

Du kannst wenn du dir das antun willst auch ne excel tabelle benutzen, ja, machbar is das schon, aber ..... bah, mach sowas nich du.

Mit ner Datenbank wär das mit nem simplen Query gegessen die sache.

Aber um deine Frage zu beantworten :

wenn ich nur nach einer sache suche zB t-shirt kann ich ja eine globale suche machen und mir alles ausgeben lassen was den begriff t-shirt beinhaltet.

aber bei mehren sachen über comboboxen weiß ich nicht weiter

Du verbindest einfach die selektierten einträge deiner comboboxen, und baust dir daraus nen string, nach dem du suchst.

dim blablub as string = combobox1 & combobox2 & combobox3

aber wie gesagt, mach sowas nich mit excel, wirste nich glücklich mit

Hmmm wie könnte man denn das alternativ lösen?

sollte aber schon excel sein.

das mit den combobox1 & comboxbox2 klappt leider nicht

Private Sub CommandButton2_Click()

Dim blatt As Worksheet

Dim zelle As Range

Dim suchstring As String

suchstring = ComboBox1 & ComboBox2

For Each blatt In ActiveWorkbook.Worksheets

For Each zelle In blatt.UsedRange.Cells

If Not (IsError(Application.Find(LCase(suchstring), LCase(zelle.Text)))) Then

blatt.Select

zelle.Select

Aerodynamik.Frame1.Caption = zelle.Text

End If

Next zelle

Next blatt

MsgBox "suche beendet"

End Sub

bis jetz markiert er nur die gefundenen einträge, wie bekomme ich die denn in eine listbox oder besser in so ein scrollbalken

und eine frage noch.. wie bekomme ich ihn dazu das er nur auf eine bestimmte seite such nicht auf alles seiten

hi jim84,

also wenn du etwas in eine listbox hineinbringen möchstest machst du das am besten so:

UserForm1.ListBox1.AddItem(zelle)
um nur auf einem blatt zu suchen solltest du einfach die For Schleife entfernen, welche alle Arbeitsblätter durchgeht. ich persönlich würde das was du vorhast so hier lösen: 1. Würde ich meine Sheets so einrichten, dass man z.B. ein Sheet "hosen" und ein Sheet "t-shirts" und was man auch immer noch haben möchte hat. Außerdem schreibe ich in die erste Zelle(also die A-Spalte) den namen der hose oder des t-shirts, z.b. Levy-Jeans blau, in die B-Spalte, schreibe ich dann männlich oder weiblich und in die C-Spalte die größen 2. wenn alle comboboxen ausgefüllt sind und man auf den suchen button klickt, würde ich mit
Sheets(UserForm1.ComboBox_klamotte).Select
in das entsprechende Arbeitsblatt wechseln (in der ComboBox_klamotte, wählt man natürlich aus was man haben möchte) danach führe ich die folgende suchfunktion aus:
Cells.Find(What:="männlich", After:=ActiveCell, LookIn:=xlFormulas, LookAt _

        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _

        False, SearchFormat:=False).Activate
dann prüfst du ob in der(oder den zellen, je nachdem wie man die größen eingibt) zelle, rechts neben der aktiven zelle, die gewünscht größe steht, wenn ja kannst du:
UserForm1.ListBox1.AddItem(Activecell.Offset(0,-1).Value)
machen, wenn nein, dann suchst du mit
Cells.FindNext(After:=ActiveCell).Activate

nach dem nächsten treffer.

Hoffe das hilft dir weiter

mfg

hey, cool vielen dank.

klingt nach bissel rum tüfteln aber so könnte es gehen

vielen dank!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.