Hat jemand den VBA-Code um per Commandbutton-Druck eine Datei
aus Ordner C:\A in Ordner C:\B zu kopieren, ohne diese erst zu öffnen
oder umbenennen zu müssen?
Vielen Dank für die Hilfe.
Hallo,
so z.B.:
Option Explicit
Sub Ordner_kopieren()
Const Quelle As String = "c:\a"
Const Ziel As String = "c:\b"
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder Quelle, Ziel, True
End Sub
Gruß K.Rola
Oscar Wilde
Sub DateiKopieren()
Dim lstrQuelle As String, lstrZiel As String, liSuche As Integer, liSlash As Integer
lstrQuelle = Sheets(BLATTNAME).Range("A1").Value
For liSuche = 1 To Len(lstrQuelle)
If Mid(lstrQuelle,liSuche,1) = "\" Then
liSlash = liSlash + 1
End If
Next
lstrZiel = Right(lstrQuelle,Len(lstrQuelle) - liSlash)
lstrZiel = Sheets(BLATTNAME).Range("A2").Value & "\" & lstrZiel
FileCopy lstrQuelle, lstrZiel
End Sub
Private Sub Copy(ByVal SrcPath As String, _
ByVal DstPath As String, _
ByVal FileName As String)
Dim src As Variant, dst As Variant
src = SrcPath & FileName ' Namen der Quelldatei festlegen.
dst = DstPath & FileName ' Namen der Zieldatei festlegen.
FileCopy src, dst ' Quell- in Zieldatei kopieren.
End Sub
Private Sub Test()
Call Copy("H:\", _
"K:\", _
"Services.txt")
End Sub
Um eine Datei per VBA zu kopieren, kannst du den folgenden Code verwenden. Dieser Code kopiert eine Datei von einem Quellordner in einen Zielordner, ohne die Datei vorher zu öffnen:
Sub DateiKopieren()
Dim Quelle As String
Dim Ziel As String
Quelle = "C:\A\deine_datei.txt" ' Pfad zur Quelldatei
Ziel = "C:\B\deine_datei.txt" ' Pfad zur Zieldatei
FileCopy Quelle, Ziel ' Datei kopieren
End Sub
Wenn du die Datei umbenennen möchtest, kannst du den Zielpfad wie folgt anpassen:
Ziel = "C:\B\neue_datei.txt" ' Umbenennung der Zieldatei
Fehler: "Datei nicht gefunden"
Fehler: "Zielpfad ungültig"
Fehler: "Zugriff verweigert"
Wenn du mehrere Dateien kopieren möchtest, kannst du eine Schleife verwenden:
Sub MehrereDateienKopieren()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim Quelle As String
Dim Ziel As String
Quelle = "C:\A\"
Ziel = "C:\B\"
fso.CopyFolder Quelle, Ziel
End Sub
Um die Dateien nach dem Kopieren umzubenennen, musst du dies in einer separaten Schleife machen.
Sub DateiKopierenUndUmbenennen()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim Quelle As String
Dim Ziel As String
Quelle = "C:\A\deine_datei.txt"
Ziel = "C:\B\neue_datei.txt"
fso.CopyFile Quelle, Ziel
End Sub
Sub DateiKopierenAusZelle()
Dim Quelle As String
Dim Ziel As String
Quelle = Sheets("Tabelle1").Range("A1").Value
Ziel = Sheets("Tabelle1").Range("A2").Value
FileCopy Quelle, Ziel
End Sub
On Error Resume Next, um Fehler bei der Ausführung zu ignorieren, aber sei vorsichtig, da dies auch legitime Fehler übersehen kann.Scripting.FileSystemObject für komplexere Dateioperationen wie das Kopieren von Ordnern oder das Überprüfen, ob Dateien existieren.1. Kann ich mit VBA auch Ordner kopieren?
Ja, du kannst mit fso.CopyFolder ganze Ordner kopieren.
2. Wie kann ich eine Datei in einen anderen Ordner einfügen?
Verwende den Code FileCopy Quelle, Ziel, wobei der Zielpfad den gewünschten Ordner enthalten sollte.
3. Wie kann ich eine Excel-Datei kopieren und umbenennen?
Nutze FileCopy und passe den Zielpfad entsprechend an, um die Datei unter einem neuen Namen zu speichern.