Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateien mit bestimmten Textteil im Dateiname suche

Dateien mit bestimmten Textteil im Dateiname suche
René
Hallo liebe Excelgemeinde,
mit diesem Code ist es möglich alle Dateien aus einem Verzeichnis als Hyperlink aufzulisten die im Dateiname einen bestimmten Text enthalten. Ich würde gern den zu suchenden Text in eine Zelle schreiben und vom Makro aus der Zelle auslesen lassen da sich der Text ändern kann. Könnt ihr mir da bitte helfen.
MfG René
Private Sub CommandButton1_Click()
Dim strDatei As String, lngZ As Long
Const VERZEICHNIS As String = "C:\Users\Rene\Testbögen\"
If Dir(VERZEICHNIS, vbDirectory) = "" Then
MsgBox VERZEICHNIS & " wurde nicht gefunden!" & Space(10), 64, "weise hin..."
Exit Sub
End If
With ActiveSheet
.Columns(1).ClearContents
strDatei = Dir(VERZEICHNIS & "*Testbögen*.xls*", vbNormal)
Do While strDatei  ""
lngZ = lngZ + 1
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, SubAddress:="", _
TextToDisplay:=strDatei
strDatei = Dir
Loop
End With
End Sub

Anzeige
AW: Dateien mit bestimmten Textteil im Dateiname suche
03.01.2011 07:45:00
marcl
Hallo René,
strDatei = Dir(VERZEICHNIS & cells(1,1), vbNormal) ' Cells(1,1) = Range("A1")
Gruß
marcl
AW: Dateien mit bestimmten Textteil im Dateiname suche
03.01.2011 12:20:54
René
Hallo marcl,
habe das wie unten umgebaut, funktioniert aber leider nicht.
MfG René
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!" & Space(10), 64, "weise hin..."
Exit Sub
End If
With ActiveSheet
.Columns(1).ClearContents
strDatei = Dir(VERZEICHNIS & "*Cells(1, 5)*.xls*", vbNormal)
Do While strDatei  ""
lngZ = lngZ + 1
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, SubAddress:="", _
TextToDisplay:=strDatei
strDatei = Dir
Loop
End With
End Sub

Anzeige
AW: Dateien mit bestimmten Textteil im Dateiname suche
03.01.2011 12:35:40
René
Hallo marcl,
habe das wie unten umgebaut, funktioniert aber leider nicht.
MfG René
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!" & Space(10), 64, "weise hin..."
Exit Sub
End If
With ActiveSheet
.Columns(1).ClearContents
strDatei = Dir(VERZEICHNIS & "*Cells(1, 5)*.xls*", vbNormal)
Do While strDatei  ""
lngZ = lngZ + 1
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, SubAddress:="", _
TextToDisplay:=strDatei
strDatei = Dir
Loop
End With
End Sub

Anzeige
AW: Dateien mit bestimmten Textteil im Dateiname suche
03.01.2011 13:02:41
Rudi
Hallo,
du musst den String schon korrekt zusammensetzen.
strDatei = Dir(VERZEICHNIS & "*" & Cells(1, 5) & "*.xls", vbNormal)
Gruß
Rudi
AW: Dateien mit bestimmten Textteil im Dateiname suche
03.01.2011 15:10:39
René
Hallo Rudi
habe es noch bißl ausgebaut. Vielen Dank für die Hilfe. Funktioniert jetzt gut.
MfG René
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!" & Space(10), 64, "weise hin..."
Exit Sub
End If
With ActiveSheet
.Columns(1).ClearContents
strDatei = Dir(VERZEICHNIS & "*" & Cells(1, 5) & "*.xls", vbNormal)
If Dir(VERZEICHNIS & "*" & Cells(1, 5) & "*.xls", vbNormal) = "" Then
MsgBox ("Für diesen Patientennamen liegen keine erfassten Tests vor!")
End If
Do While strDatei  ""
lngZ = lngZ + 1
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, SubAddress:="", _
TextToDisplay:=strDatei
strDatei = Dir
Loop
End With
End Sub

Anzeige
AW: Dateien mit bestimmten Textteil im Dateiname suche
03.01.2011 16:26:54
Rudi
Hallo,
wozu 2x Dir?
Besser so:
.....
strDatei = Dir(VERZEICHNIS & "*" & Cells(1, 5) & "*.xls", vbNormal)
If strDatei = "" Then
.....

Gruß
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

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.

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deine Arbeitsmappe)" > Einfügen > Modul.
  3. 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
  1. Stelle sicher, dass Du ein CommandButton auf Deinem Arbeitsblatt hast, um das Makro zu starten.
  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige