Datei Tabellenblatt kopieren
Der Kode macht in Zeile probleme. Fehlermeldung: Laufzeitfehler 75, Fehler beim Zugriff auf Pfad / Datei. Für mich sind die Pfade richtig geschrieben, verstehe die Meldung daher nicht.
MkDir DestFolder
Sub KopiereDatei()
Dim FSO As Object
Dim SourceFile As String
Dim DestFolder As String
SourceFile = "C:\Users\Besitzer\Desktop\Datei für DEMO\Info.xlsb" ' Pfad zur Quelldatei
DestFolder = "C:\Users\Besitzer\Desktop\Tabelle_Test.xlsx" ' Pfad zum Zielordner (ohne Dateiname)
If Not FolderExists(DestFolder) Then ' Überprüfen, ob der Zielordner existiert, wenn nicht, erstellen
MkDir DestFolder
End If
Set FSO = CreateObject("Scripting.FileSystemObject") ' Erstellen des FileSystemObject
If FSO.FileExists(SourceFile) Then ' Kopieren der Datei
FSO.CopyFile Source:=SourceFile, Destination:=DestFolder
MsgBox "Die Datei wurde erfolgreich kopiert.", vbInformation
Else
MsgBox "Die Quelldatei wurde nicht gefunden.", vbExclamation
End If
Set FSO = Nothing ' Freigabe des FileSystemObject
End Sub
Function FolderExists(ByVal FolderPath As String) As Boolean
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
FolderExists = FSO.FolderExists(FolderPath)
Set FSO = Nothing
End Function
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5322735252
Url: https://administrator.de/contentid/5322735252
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
8 Kommentare
Neuester Kommentar
Hi.
Gruß
Zeile 8: DestFolder = "C:\Users\Besitzer\Desktop\Tabelle_Test.xlsx" ' Pfad zum Zielordner (ohne Dateiname)
Lies mal den Kommentar(nach dem Hochkomma) durch und was mkdir so veranstaltet. Dann kommste alleine auf die Lösung (und auch darauf, warum das gar nicht funktionieren sollte).Gruß
Was auch sonst? Works as designed.
MkDir erzeugt ein Directory/einen Ordner.
Du sagt: erzeuge den Ordner "C:\Users\Besitzer\Desktop\Tabelle_Test.xlsx".
Das passiert. Der Ordner heißt "Tabelle_Test.xlsx". Das ist ein zulässiger Ordnername, wie auch ein zulässiger Dateiname. Hier ein Ordnername.
Da dann der Ordner "Tabelle_Test.xlsx" unter Desktop besteht, muss der Kopiervorgang fehlschlagen. In einem Ordner (hier: Desktop) können nicht ein Unterordner und eine Datei identischen Namens existieren.
Du willst aber wohl eher (oder Dein AI-Code, den Du nicht verstehst?):
1. Prüfe, ob der Zielordner existiert (bei Desktop eher sinnfrei...).
2. Falls nicht, erzeuge Zielordner
3. Kopiere dann die Quelldatei in den Zielordner
Dann muss der Zielordner schlicht "C:\Users\Besitzer\Desktop" heißen.
Lies Dir auch mal die Beschreibung von CopyFile durch.
Gruß
DivideByZero
MkDir erzeugt ein Directory/einen Ordner.
Du sagt: erzeuge den Ordner "C:\Users\Besitzer\Desktop\Tabelle_Test.xlsx".
Das passiert. Der Ordner heißt "Tabelle_Test.xlsx". Das ist ein zulässiger Ordnername, wie auch ein zulässiger Dateiname. Hier ein Ordnername.
Da dann der Ordner "Tabelle_Test.xlsx" unter Desktop besteht, muss der Kopiervorgang fehlschlagen. In einem Ordner (hier: Desktop) können nicht ein Unterordner und eine Datei identischen Namens existieren.
Du willst aber wohl eher (oder Dein AI-Code, den Du nicht verstehst?):
1. Prüfe, ob der Zielordner existiert (bei Desktop eher sinnfrei...).
2. Falls nicht, erzeuge Zielordner
3. Kopiere dann die Quelldatei in den Zielordner
Dann muss der Zielordner schlicht "C:\Users\Besitzer\Desktop" heißen.
Lies Dir auch mal die Beschreibung von CopyFile durch.
Gruß
DivideByZero
Zitat von @mark47:
Habe ich jetzt verwendet, in der MsgBox werde ich nach der Datei gefragt, aber wie wähle ich denn das entsprechende Tabellenblatt (Quelldatei) aus, welches ich kopieren will?
Habe ich jetzt verwendet, in der MsgBox werde ich nach der Datei gefragt, aber wie wähle ich denn das entsprechende Tabellenblatt (Quelldatei) aus, welches ich kopieren will?
Indem du mal die Kommentare des Codes liest ... 💩
' ....
'Sheet kopieren
wbQuelle.Worksheets("Tabelle1").Copy After:=wbZiel.Worksheets(wbZiel.Worksheets.Count)