ich bin VBA-Amateur und diese Seite hat mir schon oft geholfen.
Vielleicht auch dieses mal.
Ich habe eine Exceldatei "Anmeldung.xlsm" mit einer UserForm1 die eine TextBox1, ein CommandButton1 und eine ListBox1 beinhaltet.
Zusätzlich habe ich eine andere Excel-Datei "Daten.xls" mit einer Vielzahl an Daten.
Ich möchte gerne, dass wenn man den CommandButton1 klickt, die Spalte A der Datei "Daten.xls" nach dem Inhalt der TextBox1 durchsucht. Die "Daten.xls" soll dabei nicht für den Anwender sichtbar sein.
Das Ergebnis (können auch mehrere sein) soll in der ListBox1 mit weiteren Werten aus der Zeile angezeigt werden.
Natürlich bin ich nicht ganz unvorbereitet:
Ich habe es bereits geschafft die Suchfunktion zu erstellen. Aktuell wird aber nur die "Anmeldung.xlsm" durchsucht.
Wie bekomme ich es hin, dass die "Daten.xls" durchsucht wird und das für den User unsichtbar?
Such-Funktion:
Private Sub CommandButton1_Click()
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strFirst As String
With Sheets("Tabelle1")
Set rngBereich = .Columns(2)
Set c = rngBereich.Find(TextBox1, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strFirst = c.Address
Do
ListBox1.AddItem .Cells(c.Row, 1)
lngAnzahl = ListBox1.ListCount
ListBox1.List(lngAnzahl - 1, 1) = .Cells(c.Row, 2)
ListBox1.List(lngAnzahl - 1, 2) = .Cells(c.Row, 3)
ListBox1.List(lngAnzahl - 1, 3) = .Cells(c.Row, 4)
ListBox1.List(lngAnzahl - 1, 4) = .Cells(c.Row, 5)
ListBox1.List(lngAnzahl - 1, 5) = .Cells(c.Row, 6)
ListBox1.List(lngAnzahl - 1, 6) = .Cells(c.Row, 7)
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address strFirst
End If
End With
End Sub