Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Unterordner durchsuchen

VBA: Unterordner durchsuchen
25.08.2024 11:09:14
MarC
Hallo zusammen,

ich möchte einen Ordner inkl. Unterordner nach xlsm Files durchsuchen und in den Files nach einem bestimmten Tabellenblatt suchen und für dieses Tabellenblatt meine eigentliche Testprozedur durchführen. Der Code funktioniert aber leider nur für den Hauptordner. Wie kann ich die Unterordner miteinbeziehen? Könnte mir wer da bitte helfen?

Grüße
MarC

Sub test()


Dim strPath As String
Dim strType As String
Dim strFile As String
Dim strKeyWord As String
Dim i As Long

Application.ScreenUpdating = False

strPath = "C:\Users\.........................."
strType = "*.xlsm"

If strPath = "" Then
Exit Sub
Else
strFile = Dir(strPath & strType)
Do While Len(strFile) > 0
Workbooks.Open Filename:=strPath & strFile

strKeyWord = "Japan"

For i = 1 To Worksheets.Count
If Worksheets(i).Name = strKeyWord Then
If Cells(1, 1).Value > "" Then
Workbooks("Testdatei").Worksheets("Tabelle1").Cells(2, 1).Value = strFile
Exit For
End If
End If
Next
Workbooks(strFile).Close
strFile = Dir()
Loop
End If
End Sub
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Unterordner durchsuchen
25.08.2024 11:24:15
RPP63
Da dies eine absolute Standardaufgabe ist, habe ich mal Gemini getestet.
Die Antwort war:
Das Durchsuchen von Ordnern und Unterordnern nach bestimmten Dateitypen ist eine gängige Aufgabe in VBA. Hier ist ein VBA-Code, der dir dabei hilft, alle .xlsm-Dateien in einem angegebenen Ordner und seinen Unterordnern zu finden:
Sub FindXLSMAFiles()

Dim myFolder As String
Dim myFile As String
Dim objFSO As Object

' Hier den Pfad zum gewünschten Ordner angeben
myFolder = "C:\Dein\Pfad\Zum\Ordner"

Set objFSO = CreateObject("Scripting.FileSystemObject")

' Alle Dateien im angegebenen Ordner und seinen Unterordnern durchsuchen
Call SearchFolder(objFSO.GetFolder(myFolder))

Set objFSO = Nothing
End Sub

Sub SearchFolder(folder)
Dim subfolder As Object
Dim file As Object

For Each file In folder.Files
If LCase(Right(file.Name, 4)) = ".xlsm" Then
Debug.Print file.Path
' Hier kannst du weitere Aktionen mit der gefundenen Datei durchführen,
' z.B. öffnen, kopieren, umbenennen
End If
Next file

For Each subfolder In folder.SubFolders
Call SearchFolder(subfolder)
Next subfolder
End Sub


Gruß Gemini aka Ralf
Anzeige
Grundsätzlich kann man das...
25.08.2024 17:44:23
Case
Moin, :-)

... auch mit Power Query lösen: ;-)
https://www.herber.de/bbs/user/171814.zip

Entpacke die Zip.
Starte die PQ_Hauptdatei.xlsb.
Er listet alle "*.XLSM" auf.
Sucht das Tabellenblatt "Japan",
Prüft ob A1 befüllt ist.
Nur diese Dateien werden mit Pfad und Name gelistet (habe noch Date created mit drin - kannst du rauswerfen, oder noch andere mit aufnehmen).

Informationen zu Power Query:
https://learn.microsoft.com/de-de/power-query/power-query-what-is-power-query
https://support.microsoft.com/de-de/office/hilfe-zu-power-query-f%C3%BCr-excel-2b433a85-ddfb-420b-9cda-fe0e60b82a94

Servus
Case
Anzeige
AW: VBA: Unterordner durchsuchen
25.08.2024 12:33:34
MarC
Danke für deine Hilfe Ralf, aber meine Abfrage kann ich da jetzt nicht ohne weiteres einbauen. Wie spreche ich den die Datei, das Tablellenblatt und die Zelle an? Mit Workbooks(file.name).......... funktioniert es nicht. Kannst du mir bitte sagen wie das gehen soll?

        For i = 1 To Worksheets.Count

If Worksheets(i).Name = strKeyWord Then
If Cells(1, 1).Value > "" Then
Workbooks("Testdatei").Worksheets("Tabelle1").Cells(2, 1).Value = strFile
Exit For
End If
End If
Next
Anzeige
Danke Fehler gefunden :-)
25.08.2024 14:28:49
MarC
ah Danke Oppa und Ralf
;

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

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