(RAW) Dateinamen aus einem Ordner lesen und in einem zweiten Ordner nachsehen ob der Dateiname (oder mehr) enthalten ist. Wichtig falls z.B. exportierte JPGs bereits umbenannt wurden und jetzt die dazugehörigen RAW Dateien aussortiert werden müssen. Wird ein Dateiname aus Ordner 1 in Ordner 2 gefunden, wird die Datei in einen Unterordner mit der Bezeichnung 1 verschoben.

Excel VBA Code (getestet mit Windows unter Paralells auf Mac)

Sub MoveRawFiles()
    Dim sourcePath As String
    Dim destinationPath As String
    Dim jpgFolderPath As String
    Dim fileName As String
    Dim fileExtension As String
    Dim jpgFiles As String
    Dim rawFiles As Object
    Dim rawFile As Variant
    Dim destinationFile As String
    Dim fso As Object
    
    'Pfad zum Ordner mit den RAW-Dateien
    sourcePath = "\\Mac\Home\Pictures\2023_07_08 Ordner\"
    
    'Pfad zum Zielordner (darunterliegender Ordner mit dem Namen "1")
    destinationPath = "\\Mac\Home\Pictures\2023_07_08 Ordner\1\"
    
    'Pfad zum Ordner mit den JPG-Dateien
    jpgFolderPath = "\\Mac\Home\Pictures\2023_07_08 Ordner\JPG (Volle Auflösung)\"
    
    'Erzeugen eines FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Alle RAW-Dateien im Quellordner durchlaufen
    Set rawFiles = fso.GetFolder(sourcePath).Files
    For Each rawFile In rawFiles
        If LCase(fso.GetExtensionName(rawFile.Path)) = "arw, cr3" Then
            fileName = fso.GetBaseName(rawFile.Name) 'Dateiname ohne Erweiterung
            fileExtension = fso.GetExtensionName(rawFile.Path) 'Dateierweiterung
        
            'Prüfen, ob der Dateiname ohne Erweiterung im JPG-Ordner enthalten ist
            jpgFiles = Dir(jpgFolderPath & "*(" & fileName & ")*")
        
            'Wenn der Dateiname nicht im JPG-Ordner gefunden wurde
            If jpgFiles = "" Then
                'Verschieben der RAW-Datei in den Zielordner
                destinationFile = destinationPath & fileName & "." & fileExtension
                fso.MoveFile rawFile.Path, destinationFile
            End If
        End If
    Next rawFile
    
    MsgBox "Vorgang abgeschlossen!"
End Sub