Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1704to1708
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

Doppelte Dir-Schleife

Doppelte Dir-Schleife
16.08.2019 13:58:54
Elisa
Guten Tag,
Mein Problem ist folgendes:
In der Excel-Datei wird ein ganzer Ordner von Daten nacheinander eingelesen und mit den entsprechenden Referenzdateien verglichen. Den Datenordner lese ich mithilfe einer Dir Schleife ein. Für Die Referenzdaten wollte ich, da der Ordnername variabel ist, nun auch eine Dir-Funktion verwenden. Dann funktioniert allerdings meine erste Dir-Schleife nicht mehr. Kann mir da jemand helfen ?
Schonmal vielen Dank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Dir-Schleife
16.08.2019 14:23:09
Daniel
Hallo Elisa,
lies bitte deine Frage nochmal ganz bewusst und stelle dir vor, du kennst weder deine Ordner, noch deine Tabelle, noch deinen Code.
Gruß
Daniel
AW: Doppelte Dir-Schleife
16.08.2019 14:31:36
Nepumuk
Hallo Elisa,
du kannst die Dir -Funktion nicht verschachteln. Die arbeitet mit Pointern auf die Dateien und durch die Verschachtelung zerstörst du den Pointer. Mach es so:
1. Suche alle Ordner und schreibe deren Pfad in ein Array.
2. In einer Schleife über dieses Array suchst du dann nach den Dateien in den Ordnern.
Ich habe da mal was vorbereitet:
Option Explicit

Public Sub Beispiel()
    Const FOLDER_PATH As String = "G:\Eigene Dateien\" 'Anpassen
    Dim astrFolders() As String
    Dim ialngFolders As Long
    astrFolders = GetFolders(FOLDER_PATH)
    For ialngFolders = LBound(astrFolders) To UBound(astrFolders)
        'hier kommt deine Suche nach den Dateien
    Next
End Sub

Private Function GetFolders(ByVal pvstrPath As String) As String()
    Dim astrFolders() As String
    Dim strFolder As String, strPath As String
    Dim ialngIndex1 As Long, ialngIndex2 As Long
    Redim Preserve astrFolders(ialngIndex1)
    astrFolders(ialngIndex1) = pvstrPath
    ialngIndex1 = 1
    ialngIndex2 = 1
    strPath = pvstrPath
    Do
        strFolder = Dir$(PathName:=strPath & "*", Attributes:=vbDirectory)
        Do Until strFolder = vbNullString
            If strFolder <> "." And strFolder <> ".." Then
                If GetAttr(PathName:=strPath & strFolder) And vbDirectory Then
                    Redim Preserve astrFolders(0 To ialngIndex1)
                    astrFolders(ialngIndex1) = strPath & strFolder & "\"
                    ialngIndex1 = ialngIndex1 + 1
                End If
            End If
            strFolder = Dir$
        Loop
        If ialngIndex1 = ialngIndex2 Then Exit Do
        strPath = astrFolders(ialngIndex2)
        ialngIndex2 = ialngIndex2 + 1
    Loop
    GetFolders = astrFolders
End Function

Gruß
Nepumuk
Anzeige
AW: Doppelte Dir-Schleife
19.08.2019 07:27:30
Elisa
Vielen Dank, das hat mir wirklich sehr geholfen
Gruß
Elisa

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige