Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei per VBA kopieren

Forumthread: Datei per VBA kopieren

Datei per VBA kopieren
22.03.2005 16:39:18
mr_damoon
Hallo Excelfreunde.
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.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei per VBA kopieren
22.03.2005 16:42:21
K.Rola
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

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Anzeige
AW: Datei per VBA kopieren
22.03.2005 16:48:35
mr_damoon
Das funktioniert.
Ich habe noch objFSO.CopyFolder ...
in objFSO.CopyFile ...
umbebaut und schon klappt es wie gewünscht..
Danke K.Rola
AW: Datei per VBA kopieren
22.03.2005 17:25:09
mr_damoon
Kann man die Const Strings auch variabel aus den Zellen A1 und A2 holen?
AW: Datei per VBA kopieren
22.03.2005 18:43:29
K.Rola
Hallo,
wenn die Werte aus einer Zelle kommen, muss man schon etwas mehr Aufwand betreiben.
Man muss prüfen, ob in den Zellen keine Zeichen stehen, die in Dateinamen nicht
erlaubt sind und ob die Zelle nicht leer ist.
In welcher Form stehen die Daten in den Zellen, mit Extension z.B.?
Gruß K.Rola
Anzeige
AW: Datei per VBA kopieren
23.03.2005 08:46:41
c:\temp1\test123.xls (wird in der Zelle generiert) als Quelle
sowie c:\tmp1 (wird ebenfalls dynamisch generiert) als Ziel.
Prüfen brauch man da jedoch nichts. Da das eine dynamische
Sache ist wo keiner händisch etwas eingibt. Bestenfalls,
ob im Quellordner eine entsprechende Datei vorhanden ist.
AW: Datei per VBA kopieren
23.03.2005 15:30:01
Oberschlumpf
Hi mr
Versuch es doch mal so:

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

Für BLATTNAME musst Du natürlich den richtigen Blattnamen eintragen.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Datei per VBA kopieren
22.03.2005 16:51:34
Frank Sohn
Hallo,

wie wär's damit :

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


Gruss
Frank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei per VBA kopieren und umbenennen


Schritt-für-Schritt-Anleitung

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

Häufige Fehler und Lösungen

  1. Fehler: "Datei nicht gefunden"

    • Überprüfe den Pfad zur Quelldatei. Stelle sicher, dass die Datei tatsächlich im angegebenen Ordner vorhanden ist.
  2. Fehler: "Zielpfad ungültig"

    • Vergewissere dich, dass der Zielordner existiert. Wenn nicht, musst du ihn vorher erstellen.
  3. Fehler: "Zugriff verweigert"

    • Stelle sicher, dass du die nötigen Berechtigungen hast, um auf die Dateien und Ordner zuzugreifen.

Alternative Methoden

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.


Praktische Beispiele

  1. Kopieren einer Datei und Umbenennen:
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
  1. Datei aus einer Zelle kopieren:
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

Tipps für Profis

  • Nutze On Error Resume Next, um Fehler bei der Ausführung zu ignorieren, aber sei vorsichtig, da dies auch legitime Fehler übersehen kann.
  • Verwende Scripting.FileSystemObject für komplexere Dateioperationen wie das Kopieren von Ordnern oder das Überprüfen, ob Dateien existieren.
  • Schaffe eine Backup-Logik, um ältere Dateiversionen zu speichern, bevor du neue Dateien überschreibst.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige