Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Dateien verschieben

VBA - Dateien verschieben
18.11.2016 09:53:46
Torsten
Hallo beisammen,
ich bräuchte einen Ansatz, mit dem ich alle Dateien, deren Dateinamen mit "LN" beginnen, aus einem Ordner C:\abc in einen anderen Ordner V:\xyz verschieben kann.
Vielen Dank für Euren Hilfe im voraus.
Gruß
Torsten
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Dateien verschieben
18.11.2016 10:15:24
baschti007
Hey Ho So ?
Gruß Basti

Private Sub SearchInFolder(ByVal Folderspec As String, ByVal Zielordner As String)      '
Dim StTyp As String
Dim FSO As Object
Dim FI As Object
Set FSO = CreateObject("Scripting.Filesystemobject")
If Not FSO.FolderExists(Folderspec) Then
MsgBox Folderspec & " ist nicht vorhanden."
Set FSO = Nothing
Exit Sub
End If
StTyp = "txt" 'Bitte anpassen des Datei Typs
Anfangderdatei = "LN" 'Bitte anpassen des Anfangs des Dateinamen
For Each FI In FSO.GetFolder(Folderspec).Files
If UCase(FSO.GetExtensionName(FI)) = UCase(StTyp) Then
If UCase(FSO.GetFileName(FI)) Like UCase(Anfangderdatei & "*") Then
FSO.MoveFile FI, Zielordner & "\"
End If
End If
Next
Set FSO = Nothing
End Sub
Sub Verschieben()
Call SearchInFolder("C:\Bastian", "C:\Bastian\add") ' 1 ist der suchordner 2 ist der wo hin es  _
verschoben wird
End Sub

Anzeige
AW: VBA - Dateien verschieben
18.11.2016 10:17:59
Michael
Hallo Torsten!
Eine (simple) Möglichkeit:
Sub a()
Const PFAD_A As String = "C:\abc\"
Const PFAD_B As String = "C:\xyz\"
Dim Datei As String
Datei = Dir(PFAD_A, vbDirectory)
Do While Datei  vbNullString
If Left(Datei, 2) = "LN" Then
Name PFAD_A & Datei As PFAD_B & Datei
Datei = Dir
Loop
End Sub
LG
Michael
Anzeige
AW: VBA - Dateien verschieben
18.11.2016 10:20:23
UweD
Hallo Torsten
Sub File_verschieben()
    Dim Quelle$, Ziel$, FSO As Object
    Quelle = "C:\abc\LN*.*"
    If Dir(Quelle) = "" Then
        MsgBox "Keine Dateien vorhanden!"
    Else
        Ziel = "V:\xyz\"
        Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.MoveFile Quelle, Ziel
        Set FSO = Nothing
    End If
End Sub

LG UweD
Anzeige
erledigt - VBA - Dateien verschieben
18.11.2016 10:46:24
Torsten
Ein herzliches Dankeschön an die drei fleissigen Helfer.
Ich habe nicht alle 3 Codes getestet, sondern mich für die Version von UweD entschieden (Heute gilt: Wer zuletzt kommt, mahlt zuerst.. :-) )
Nochmals besten Dank und schönes Wochenende.
Gruß
Torsten
AW: gern geschehen owt
18.11.2016 10:54:40
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dateien mit VBA verschieben: Eine Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um Dateien mit VBA zu verschieben, kannst du die FileSystemObject-Klasse verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, um Dateien, deren Namen mit "LN" beginnen, von einem Ordner in einen anderen zu verschieben.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:
    • Klicke mit der rechten Maustaste auf ein Projekt im Projektfenster.
    • Wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:
Sub DateiVerschieben()
    Const Quelle As String = "C:\abc\"
    Const Ziel As String = "V:\xyz\"
    Dim FSO As Object
    Dim Datei As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Datei = Dir(Quelle & "LN*.*") ' Dateien, die mit "LN" beginnen

    Do While Datei <> ""
        FSO.MoveFile Quelle & Datei, Ziel & Datei
        Datei = Dir
    Loop

    Set FSO = Nothing
End Sub
  1. Ändere die Pfade (C:\abc\ und V:\xyz\) nach Bedarf.
  2. Führe das Makro aus und beobachte, wie die Dateien verschoben werden.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den angegebenen Quellordner. Stelle sicher, dass der Pfad korrekt ist und dass dort Dateien vorhanden sind.
  • Fehler: "Zielordner existiert nicht"

    • Lösung: Vergewissere dich, dass der Zielordner existiert. Wenn nicht, erstelle ihn manuell oder erweitere den Code, um den Ordner zu erstellen.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, Dateien in VBA zu verschieben. Eine einfache Methode ist die Verwendung der Name-Anweisung. Hier ein Beispiel:

Sub AlternativeDateiVerschieben()
    Dim Quelle As String
    Dim Ziel As String
    Dim Datei As String

    Quelle = "C:\abc\"
    Ziel = "V:\xyz\"

    Datei = Dir(Quelle & "LN*.*")

    Do While Datei <> ""
        Name Quelle & Datei As Ziel & Datei
        Datei = Dir
    Loop
End Sub

Diese Methode ist besonders nützlich, wenn du die Datei gleichzeitig umbenennen möchtest, da du den Zielpfad entsprechend anpassen kannst.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Verschieben von Dateien mit VBA:

  1. Dateien in einen anderen Ordner verschieben:

    Sub VerschiebeDateien()
       Const Quelle As String = "C:\abc\"
       Const Ziel As String = "D:\backup\"
       ' Hier kann der Code zum Verschieben eingefügt werden
    End Sub
  2. Dateien umbenennen und verschieben:

    Sub VerschiebeUndBenenneUm()
       Dim FSO As Object
       Set FSO = CreateObject("Scripting.FileSystemObject")
       FSO.MoveFile "C:\abc\alteDatei.txt", "C:\abc\nueDatei.txt"
    End Sub

Tipps für Profis

  • Nutze On Error Resume Next: Um Fehler zu ignorieren und die Ausführung fortzusetzen, wenn zum Beispiel eine Datei nicht gefunden wird.

  • Verwende FileSystemObject: Für kompliziertere Operationen, wie das Überprüfen von Dateieigenschaften oder das Kopieren von Dateien.

  • Testen in einer sicheren Umgebung: Teste deinen Code immer in einer Umgebung, in der du keine wichtigen Daten verlierst.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Dateitypen gleichzeitig verschieben?
Du kannst die Bedingung in der Schleife anpassen, um verschiedene Dateitypen zu berücksichtigen. Zum Beispiel:

If UCase(FSO.GetExtensionName(FI)) = "TXT" Or UCase(FSO.GetExtensionName(FI)) = "DOCX" Then

2. Ist es möglich, die Dateien nach dem Verschieben zu löschen?
Ja, du kannst die DeleteFile-Methode von FileSystemObject verwenden, um die Originaldateien zu löschen, nachdem sie verschoben wurden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige