Listbox füllen nach Wert in Textbox
Schritt-für-Schritt-Anleitung
- Öffne die Excel-Anwendung und aktiviere die Entwicklertools, falls diese noch nicht sichtbar sind.
- Erstelle eine Userform in Visual Basic for Applications (VBA):
- Klicke auf "Entwicklertools" > "Visual Basic".
- Füge eine neue Userform hinzu.
- Füge eine Listbox und drei Textboxen zu deiner Userform hinzu:
- TextBox1 für den Namensteil (z.B.
*),
- TextBox2 für das Datum (z.B.
21.05.2011),
- TextBox3 für die Kombination.
- Füge einen CommandButton hinzu, um die Listbox zu füllen.
- Verwende den folgenden VBA-Code, um die Listbox bei einem Klick auf den Button zu füllen:
Private Sub CommandButton1_Click()
Dim strFile As String, strPath As String
ListBox1.Clear
strPath = "C:\OrdnerA\OrdnerB\"
strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")
strFile = Dir(strPath & TextBox3 & "*.xls*", vbNormal)
Do While strFile <> ""
ListBox1.AddItem strFile
strFile = Dir
Loop
End Sub
- Setze den Wert von TextBox3 gleich der Kombination aus TextBox1 und TextBox2:
TextBox3.Value = TextBox1.Value & TextBox2.Value
- Teste die Userform, um sicherzustellen, dass die Listbox korrekt gefüllt wird.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode, um eine Listbox zu füllen, ist die Verwendung von Array-Variablen, um die Dateinamen zwischenzuspeichern und dann auf einmal zur Listbox hinzuzufügen. Das kann die Performance verbessern, besonders bei einer großen Anzahl an Dateien.
Dim files() As String
Dim i As Integer
i = 0
strFile = Dir(strPath & TextBox3 & "*.xls*")
Do While strFile <> ""
ReDim Preserve files(i)
files(i) = strFile
i = i + 1
strFile = Dir
Loop
For j = LBound(files) To UBound(files)
ListBox1.AddItem files(j)
Next j
Praktische Beispiele
Wenn du die Userform für spezifische Dateinamen nutzen möchtest, kannst du verschiedene Kombinationen in TextBox1 und TextBox2 ausprobieren. Zum Beispiel:
- TextBox1:
Meier,
- TextBox2:
21.05.2011
Die Listbox wird dann alle Excel-Dateien auflisten, die mit "Meier, 21.05.2011" beginnen.
Tipps für Profis
- Verwende Fehlerbehandlung: Implementiere
On Error Resume Next, um mögliche Laufzeitfehler abzufangen und die Anwendung stabiler zu gestalten.
- Optimiere den Code: Verwende
Application.ScreenUpdating = False vor dem Füllen der Listbox, um die Performance zu steigern und das Flackern des Bildschirms zu vermeiden.
FAQ: Häufige Fragen
1. Kann ich die Listbox auch mit anderen Dateitypen füllen?
Ja, du kannst die Filterkriterien im Dir-Befehl anpassen, um auch andere Dateitypen, wie .txt oder .csv, anzuzeigen.
2. Wo finde ich die Entwicklertools in Excel?
Die Entwicklertools kannst du unter "Datei" > "Optionen" > "Menüband anpassen" aktivieren. Setze ein Häkchen bei "Entwicklertools".