Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per Dateiname suchen

per Dateiname suchen
20.01.2023 13:24:38
Marcus
Hallo zusammen,
gibt es eine Möglichkeit ein Laufwerk nach einem Dateinamen durchsuchen zulassen und es wird zu den jeweilgen Ergebnissen ein Hyperlink erstellt?
Also er soll nach Einkaufsliste suchen und alle auflisten egal ob xls oder pdf.
Gruß
Marcus

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ja, die Möglichkeit gibt es.
20.01.2023 13:34:02
Rudi
Hallo,
kann aber ganz schön lange dauern.
Gruß
Rudi
AW: mit Power Query zwar möglich ...
20.01.2023 13:38:25
neopa
Hallo Marcus,
... alle entsprechenden Dateien eines LWerkes zu listen und daraus dann einen entsprechenden Hyperlink zu definieren.
Doch könnte ich mir vorstellen, dass das gewünschte mit VBA schneller realisierbar ist. Allerdings ich befasse mich mit VBA nicht und würde es persönlich für mich in Kombination mit dem Total Commander realisieren.
Gruß Werner
.. , - ...
AW: mit Power Query zwar möglich ...
21.01.2023 11:01:07
Marcus
@Werner danke, aber PowerQuery ist noch weiter entfernt als VBA für mich hihi
AW: per Dateiname suchen
20.01.2023 13:42:49
Yal
Hallo Marcus,
Windows-Taste+r , cmd eingeben.
dann
cd / <Enter> oder auf dem Zielverzeichnis wechseln
dir /s/b > c:\temp\liste.csv <Enter>
warten bis der Prompt wieder erscheint, um Fenster zu schliessen.
danach Datei c:\temp\liste.csv in Excel öffnen.
VG
Yal
Anzeige
genauer
20.01.2023 13:54:04
Yal
Einmal mit
dir *einkauf*.pdf /s/b > C:\temp\liste_pdf.csv
einmal mit
dir *einkauf*.xl* /s/b > C:\temp\liste_xls.csv
Wenn Du alles in einer Datei haben möchte, beim zweiten Suchgang der Redirect-Zeichen doppeln >> c:\...
AW: genauer
21.01.2023 11:02:16
Marcus
@Yal, danke für den Tipp es funktioniert, erfindet aber weniger als über die Windows Suche, warum keine Ahnung
Dankeschön
Marcus
AW: per Dateiname suchen
20.01.2023 13:51:14
Marcus
Entschuldigung, habe mich wie schon des öffteren falsch und zu knapp ausgedrückt.
Ich habe Ordner von Mitgliedern (ca 4500) in jedem Ordner gibt es eine Datei mit dem Namen Einkaufsliste.
Mein Wunsch wäre alle Ordner der Mitglieder nach der Datei Einkaufsliste zu durchsuchen und mir hieraus eine Excelliste mit Hyperlinks zu den Dateien zu erstellen.
Mein Problem ist das es xls xlsm pdf sein können. Die von mir gefunden Codes hängen sich eigentlich alle auf.
Z.B.

Option Explicit
Dim wksStart As Worksheet, wksInhalt As Worksheet, vntFiles(), lngFiles As Long
Dim strSuch As String
Sub prcFolders()
    Dim FSO As Object, oFolder As Object
    Dim strFolder As String
    
    Application.ScreenUpdating = False
    
    Set wksStart = ThisWorkbook.Sheets("Start")
    
    On Error Resume Next
    Set wksInhalt = ThisWorkbook.Sheets("Inhalt")
    On Error GoTo 0
    If wksInhalt Is Nothing Then
      Set wksInhalt = Worksheets.Add
      wksInhalt.Name = "Inhalt"
    End If
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    strFolder = wksStart.Cells(1, 2)
    If strFolder = "" Then
      With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = "c:\"  'anpassen
        If .Show = -1 Then
          strFolder = .SelectedItems(1)
        End If
      End With
    End If
    
    If strFolder = "" Then Exit Sub
    
    strSuch = Application.InputBox("Dateiname?", "Suchbegriff")
    If strSuch = "Falsch" Then Exit Sub
    strSuch = LCase("*" & strSuch & "*")
    
    Set oFolder = FSO.getfolder(strFolder)
    lngFiles = 1
    
    With wksInhalt
        .Range("A:C").ClearContents
        .Cells(1, 1) = "Pfad"
        .Cells(1, 2) = "Dateiname"
        .Range(.Cells(1, 1), .Cells(1, 3)).Font.Bold = True
    End With
    
    prcFiles oFolder
    prcSubFolders oFolder
    
    With wksInhalt
        .Range(.Cells(2, 1), .Cells(lngFiles, 2)).FormulaLocal = WorksheetFunction.Transpose(vntFiles)
        .Activate
    End With
End Sub
Sub prcSubFolders(oFolder)
    Dim oSubFolder As Object
    For Each oSubFolder In oFolder.subfolders
        prcFiles oSubFolder
        prcSubFolders oSubFolder
    Next
End Sub
Sub prcFiles(oFolder)
    Dim oFile As Object
    For Each oFile In oFolder.Files
      If LCase(oFile.Name) Like strSuch Then
        ReDim Preserve vntFiles(1 To 2, 1 To lngFiles)
        vntFiles(1, lngFiles) = oFolder.Path
        vntFiles(2, lngFiles) = "=hyperlink(""" & oFile.Path & """;""" & oFile.Name & """)"
        lngFiles = lngFiles + 1
      End If
    Next
End Sub

Anzeige
AW: per Dateiname suchen
21.01.2023 11:00:14
Marcus
@Nepumuk
Makro läuft ohne Fehler durch.
Er beendet aber den Durchlauf immer nach dem 1 Fund.
Wie kann ich dem Code sagen das er solange durchläuft bis er alle Ordner / Dateien nach dem Namen geprüft hat?
Über den Win-Explorer findet er 4221 Dateien.
Danke für die Datei
Gruß
Marcus
AW: per Dateiname suchen
21.01.2023 11:08:28
Nepumuk
Hallo Marcus,
mein Fehler. Ich habe den Zeilenzähler vergessen. Ändere das Makro so:
Public Sub SearchFiles()
    Dim wksInhalt As Worksheet
    Dim objFileSearch As clsFileSearch
    Dim ialngIndex As Long, lngFileCount As Long, lngRow As Long
    Dim strFolder As String, strSearch As String
    strSearch = InputBox("Dateiname?", "Suchbegriff")
    If StrPtr(strSearch) = 0 Then Exit Sub
    strFolder = ThisWorkbook.Worksheets("Start").Cells(1, 2).Text
    If strFolder = "" Then
        With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = "C:\"  'anpassen
            If .Show Then
                strFolder = .SelectedItems(1)
            Else
                Exit Sub
            End If
        End With
    End If
    Application.ScreenUpdating = False
    lngRow = 2
    For Each wksInhalt In ThisWorkbook.Worksheets
        If wksInhalt.Name = "Inhalt" Then Exit For
    Next
    If wksInhalt Is Nothing Then
        Set wksInhalt = Worksheets.Add
        wksInhalt.Name = "Inhalt"
    End If
    With wksInhalt
        Call .Activate
        Call .Columns("A:C").Clear
        With .Range("A1:B1")
            .Value = Array("Pfad", "Dateiname")
            .Font.Bold = True
        End With
    End With
    Set objFileSearch = New clsFileSearch
    With objFileSearch
        .CaseSenstiv = False
        .Extension = "*.*"
        .FolderPath = strFolder
        .SearchLike = "*" & strSearch & "*"
        .SubFolders = True
        lngFileCount = .Execute(Sort_by_Path, Sort_Order_Ascending)
        For ialngIndex = 1 To lngFileCount
            wksInhalt.Cells(lngRow, 1).Value = .Files(ialngIndex).Path
            Call wksInhalt.Hyperlinks.Add(Anchor:=wksInhalt.Cells(lngRow, 2), _
                Address:=.Files(ialngIndex).Path, TextToDisplay:=.Files(ialngIndex).Filename)
            lngRow = lngRow + 1
        Next
    End With
    Call wksInhalt.Columns.AutoFit
    Application.ScreenUpdating = True
    Set objFileSearch = Nothing
    Set wksInhalt = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: per Dateiname suchen
21.01.2023 12:43:49
Marcus
@Nepumuk,
Rennt wie ein Maschinengewehr, hammer
ein dickes Dankeschön
Marcus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige