VBA - MoveFolder funktioniert nicht

MagnaUser

Cadet 1st Year
Registriert
Juli 2021
Beiträge
12
Hallo an alle,

Ich habe folgenden Code der vom Quell-Ordner "D:\S7_Export\Tox\" die Unterordner
mit Variablen und Teilstrings zum Ziel-Ordner verschieben soll.

Code:
Public Sub Test()

    Dim strFolder As String
    Dim strFile_IB As String   

    Dim strTargetPath As String

    Dim oFSO As Object 

    strFolder = "21080617035L"
    strFile_IB = "21080617035"
    
    'Ziel-Pfade
    strTargetPath = "D:\S7_Export\AppData\" & strFolder & "\"
  
    Set oFSO = CreateObject("Scripting.FileSystemObject") ' 
    
 Dim MStPath As String
    
    MStPath = Dir("D:\S7_Export\Tox\" & "TOX_015R01_" & strFile_IB & "*", vbDirectory)
    
    MsgBox (MStPath)   
    
     If Dir(MStPath, vbDirectory) <> "" Then

         oFSO.MoveFolder Source:=MStPath, Destination:=strTargetPath       

    Else
        MsgBox ("Keine Übereinstimmung")     

    End If

Set oFSO = Nothing

End Sub

Die Unterordner sehen vom Namen so aus: TOX_015R01_21080617035_xyz_123
beim Debuggen (F8) werden alle Variablen richtig angezeigt.
Die MsgBox (MStPath) funktioniert auch und zeigt das richtige Ergebnis.

Aber bei der If Abfrage springt er zu Else anstatt zu verschieben.
Ich verstehe nicht warum. Es müsste alles richtig sein.

Seht Ihr vielleicht warum es nicht funktioniert?

Vielen Dank im voraus.

Grüße MagnaUser
 
MStPath = Dir("D:\S7_Export\Tox\" & "TOX_015R01_" & strFile_IB & "*", vbDirectory) gibt etwas zurück, dass mit dem Folgenden Dir(MStPath, vbDirectory) nicht True wird, also wohl nur den dir/file-Namen. Der sollte allerdings für die Condition reichen.

Versuch mal If MStPath <> "" Then.

Grüße
 
Hallo ErnestoHoro,

Vielen Dank für deine Antwort.

Mit deinem Vorschlag funktioniert es, das er nicht mehr zum Else Zweig springt.
Aber beim MoveFolder kommt es zum Runtime -Error 76 Path not found.

Ok Lösung gefunden. Beim MoveFolder muss bei der Quelle der ganze Pfad angegeben werden.

Code:
If MStPath <> "" Then
                oFSO.MoveFolder "D:\S7_Export\Tox\" & MStPath, strTargetPath

Vielen Dank nochmal.

Grüße MagnaUser

 
Zurück
Oben