Dateien mit bestimmten Textteilen im Dateinamen suchen
Schritt-für-Schritt-Anleitung
Um alle Dateien aus einem Verzeichnis aufzulisten, die einen bestimmten Text im Dateinamen enthalten, kannst Du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es, den gesuchten Text aus einer Zelle auszulesen, was praktisch ist, da sich der Text häufig ändern kann.
- Öffne Excel und drücke
ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
- Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deine Arbeitsmappe)" > Einfügen > Modul.
- Kopiere den folgenden Code in das Modul:
Private Sub CommandButton1_Click()
Dim strDatei As String, lngZ As Long
Const VERZEICHNIS As String = "C:\Testdaten_ET6_bis_6\"
If Dir(VERZEICHNIS, vbDirectory) = "" Then
MsgBox VERZEICHNIS & " wurde nicht gefunden!", vbExclamation, "Hinweis"
Exit Sub
End If
With ActiveSheet
.Columns(1).ClearContents
strDatei = Dir(VERZEICHNIS & "*" & Cells(1, 5) & "*.xls", vbNormal)
If strDatei = "" Then
MsgBox "Für diesen Patientennamen liegen keine erfassten Tests vor!"
Exit Sub
End If
Do While strDatei <> ""
lngZ = lngZ + 1
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, _
TextToDisplay:=strDatei
strDatei = Dir
Loop
End With
End Sub
- Stelle sicher, dass Du ein CommandButton auf Deinem Arbeitsblatt hast, um das Makro zu starten.
- Trage den gewünschten Text in Zelle E1 ein und klicke auf den Button, um die Dateien aufzulisten.
Häufige Fehler und Lösungen
-
Fehler: "Verzeichnis wurde nicht gefunden!"
- Lösung: Überprüfe den Pfad in
Const VERZEICHNIS
. Stelle sicher, dass der angegebene Ordner existiert.
-
Fehler: Keine Dateien gefunden
- Lösung: Stelle sicher, dass der Text in Zelle E1 korrekt ist und die Dateiendung
.xls
oder .xlsx
hat.
-
Fehler: Laufzeitfehler 424
- Lösung: Dieser Fehler kann auftreten, wenn Du auf eine Zelle zugreifen möchtest, die leer ist oder nicht existiert. Stelle sicher, dass Zelle E1 einen Wert hat.
Alternative Methoden
Falls Du keine VBA verwenden möchtest, kannst Du auch die Excel-Funktionen FILTER
oder SVERWEIS
in Verbindung mit einer externen Liste verwenden, um Dateinamen zu filtern. Dies ist jedoch weniger flexibel als das VBA-Makro.
Praktische Beispiele
Wenn Du Dateien suchst, die das Wort "Bericht" im Namen enthalten, trage "Bericht" in Zelle E1 ein. Das Makro wird dann alle entsprechenden Dateien im angegebenen Verzeichnis auflisten.
Hier ist ein Beispiel für den Code, den Du anpassen kannst:
strDatei = Dir(VERZEICHNIS & "*" & Cells(1, 5) & "*.xls", vbNormal)
Wenn Du nach Dateinamen suchst, die mit "Test" beginnen, würdest Du "Test" in E1 eingeben.
Tipps für Profis
- Verwende die
Application.ScreenUpdating
-Eigenschaft, um das Flackern des Bildschirms während der Ausführung des Makros zu reduzieren.
- Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Fehler elegant zu behandeln.
On Error Resume Next
' Dein Code hier
On Error GoTo 0
- Teste Dein Makro regelmäßig, um sicherzustellen, dass es wie gewünscht funktioniert, insbesondere nach Änderungen.
FAQ: Häufige Fragen
1. Frage: Kann ich das Makro anpassen, um nach anderen Dateitypen zu suchen?
Antwort: Ja, Du kannst die Dateiendung in der Dir
-Funktion ändern, um nach anderen Dateitypen zu suchen, z.B. *.pdf
.
2. Frage: Woher weiß ich, ob das Makro erfolgreich war?
Antwort: Das Makro fügt Hyperlinks zu den gefundenen Dateien in der ersten Spalte des Arbeitsblatts hinzu. Wenn keine Dateien gefunden werden, erhältst Du eine entsprechende Meldung.