10.12.2025, 23:01
Hallo EXCEL-Spezialisten,
ich habe mit einer Software, die Bilder vom Handy auf den PC übertragen. Das sieht dann z.B. so aus:
J:\Neuer Ordner
darin sind viele Ordner deren Namen das Aufnahme-Datum ist. Manchmal ist in einem Datums-Ordner eine JPG-Datei oder auch mal 10, ganz verschieden.
Nun suche ich einen VBA-Code, der den Ordner "Neuer Ordner" und alle Datums-Ordner nach JPG durchsucht und im Blatt "Bilder" Spalte "A" auflistet. Ich habe hier im Forum einen Code gefunden, der eigentlich super funktioniert, aber keine Unterordner durchsucht.
Wenn der Ordner JPG enthält, funktioniert dieser Code wunderbar, doch bei mir ist im Ordner "Neuer Ordner" keine einzige JPG-Datei, alles nur in den Datums-Ordnern, deshalb funktioniert dieser Code jetzt nicht.
Gibt es eine Möglichkeit, das zu ändern?
Vielen Dank für eure Hilfe, wenn noch Fragen offen sind, stehe ich gerne zur Verfügung.
Viele Grüße
Karlheinz
ich habe mit einer Software, die Bilder vom Handy auf den PC übertragen. Das sieht dann z.B. so aus:
J:\Neuer Ordner
darin sind viele Ordner deren Namen das Aufnahme-Datum ist. Manchmal ist in einem Datums-Ordner eine JPG-Datei oder auch mal 10, ganz verschieden.
Nun suche ich einen VBA-Code, der den Ordner "Neuer Ordner" und alle Datums-Ordner nach JPG durchsucht und im Blatt "Bilder" Spalte "A" auflistet. Ich habe hier im Forum einen Code gefunden, der eigentlich super funktioniert, aber keine Unterordner durchsucht.
Code:
Sub Bilder()
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Dim t As Double
t = Timer
With Worksheets("Bilder")
Sheets("Bilder").Select
ActiveSheet.Unprotect
Range("A3:A7000").ClearContents
Range("A3").Select
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("J:\Neuer Ordner\")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 3 'ab welche Zeile wird eingetragen
For Each objDatei In objDateienliste
If Not objDatei Is Nothing And Right(LCase(objDatei.Name), 4) = ".jpg" Then
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name 'in welche Spalte wird eingetragen
lngZeile = lngZeile + 1
End If
Next objDatei
End With
ActiveSheet.Protect
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox Timer - t & " sec", , "Makrolaufzeit"
End SubGibt es eine Möglichkeit, das zu ändern?
Vielen Dank für eure Hilfe, wenn noch Fragen offen sind, stehe ich gerne zur Verfügung.
Viele Grüße
Karlheinz
Nochmals vielen Dank
Gruß
Karlheinz


