Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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

Alle Dateinamen eines Ordners durchsuchen

Alle Dateinamen eines Ordners durchsuchen
04.10.2015 12:46:22
Barbara
Hallo
eine vielleicht ungewöhnliche Frage:
Wie kann man alle Ordner eines ausgewählten Ordners durchgehen und nach Dateinamen auf eine bestimmte Eigenschaft untersuchen und diese dann in einer Tabelle auflisten?
Zuerst soll der Anwender ein Verzeichnis auswählen. (Das ist schon mal die erste Hürde für mich)
Dann soll das Makro für jeden darin enthaltenen Ordner (=Kundenordner)
(Diese einzeln durchgehen ist schon die nächste Hürde)
alle darin enthaltenen Dateinamen nach 6-stelligen Zahlen (=Artikelnummern), die mit "25" beginnen, durchsuchen und diese Zahlen in einer zweispaltigen Tabelle auflisten, also für jede gefundene Artikelnummer eine neue Zeile.
Erste Spalte: Kundenordnername
Zweite Spalte: gefundene Artikelnummer ("25...")
Uff.
Könnt Ihr mir bitte helfen?
LG,
Barbara

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Dateinamen eines Ordners durchsuchen
05.10.2015 23:26:17
Barbara
Hallo,
bin überwältigt von Euren interessanten Antworten, die ich aber leider nicht auf Anhieb verstehe, weil meine VBA-Kenntnisse nicht so gut sind.
Danke sehr.
Sitze schon einige Stunden beim Durcharbeiten und deshalb antworte ich erst jetzt.
Hajo,
Dein Beispiel kann ich einigermaßen nachvollziehen. Doch eine Frage hätte ich mal vorerst:
Datei "ordner_auslesen_hyperlink2007_64.xlsm"
Formular "frm_Verzeichnis_auslesen"
programm "Private Sub SearchInFolder"
Da kommt "DoEvents" zwei Mal vor.
Was bedeutet das? Was wird damit bewirkt? Was, wenn das nicht da steht?
Mit der Hilfe komme ich da nicht weiter.
LG,
Barbara

Anzeige
AW: Alle Dateinamen eines Ordners durchsuchen
06.10.2015 06:04:02
Hajo_Zi
Hallo Babara,
DoEvents ist Aktualisierung Bildschirm.
Gruß Hajo

AW: Alle Dateinamen eines Ordners durchsuchen
06.10.2015 22:28:23
Barbara
Ok, danke, Hajo

AW: Alle Dateinamen eines Ordners durchsuchen
09.10.2015 21:46:46
Barbara
Auch Dir, vielen Dank, Sepp.
Wenn auch etwas umfangreich und kompliziert das ganze Beispiel, aber die Anpassung an meine Ausgangssituation hat mir geholfen.
Danke und LG

Anzeige
AW: Alle Dateinamen eines Ordners durchsuchen
04.10.2015 14:02:42
ransi
Hallo Barabara,
Gibt die gefundenen Dateien in A1:B? aus.
Zum Testen:
Option Explicit



Public Sub MACHS()
    Dim Verz
    Dim objFileDialog As Object
    Dim WSHShell As Object
    Dim arr As Variant
    Dim L As Long
    Dim out As Variant
    Dim objExec As Object
    Dim Datei As Object
    Dim Element As Variant
    Dim FSO As Object
    Set objFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    With objFileDialog 'Verzeichnisauswahl
        .Title = "Irgendwas...."
        .InitialFileName = "C:\" 'oder was auch immer
        If .Show = -1 Then 'es wurde ein Verzeichniss ausgewählt
            Verz = .SelectedItems(1) 'Zur weiteren Verwendung
            Set FSO = CreateObject("Scripting.FilesystemObject")
            Set WSHShell = CreateObject("WScript.Shell")
            Set objExec = WSHShell.Exec("Where /R " & Verz & " *25*.xls") 'Findet alle .xls* in verz und Unterverzeichnissen..die mit "25" beginnen
            arr = Split(objExec.stdout.readall, vbCrLf)
            Redim out(1 To UBound(arr), 1 To 2)
            Set objExec = Nothing
            For Each Element In arr
                If Element <> "" Then
                    Set Datei = FSO.getfile(Element)
                    If Datei Like "*25####*.xls*" Then 'nach 6-stelligen Zahlen (=Artikelnummern), die mit "25" beginnen
                        L = L + 1
                        out(L, 1) = Datei.parentfolder.Name
                        out(L, 2) = Datei.Name
                    End If
                End If
            Next
            If L >= 1 Then Range("A1:B" & L) = out 'ausgeben
        End If
    End With
End Sub


ransi

Anzeige
AW: Alle Dateinamen eines Ordners durchsuchen
06.10.2015 22:25:02
Barbara
Hi ransi:
Zum Testen komme ich leider nicht, wegen Felhermeldung:
'Hier hakt es "Laufzeitfehler 7: Nicht genügend Speicher"
ReDim out(1 To UBound(arr), 1 To 2)
LG,
Barbara
:)

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige