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

Forumthread: Verschieben von Dateien

Verschieben von Dateien
09.11.2004 15:56:45
Dateien
Ich speichere Files mit Ergebnissen direkt aus Excel in vordefinierte Verzeichnisse. Nun suche ich ein Makro (oder eine Windowsfunktion) die regelmäßig das Verzeichnis durchsucht und die Files von dort in ein schreibgeschütztes Verzeichnis verschiebt, damit diese Files nicht versehentlich oder absichtlich gelöscht werden können.
Wer kann da helfen?
Danke
Manfred
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verschieben von Dateien
Dateien
machs am einfachsten mit dem FilesystemObject
Ulf
AW: Verschieben von Dateien
09.11.2004 16:53:35
Dateien
Danke Ulf, ich denke das hilft mir weiter. Wird wohl über die Move Methode gehen , oder ?
Hast Du ein Beispiel, das würde meinen lernprozess beflügeln?
Danke
Manfred
Move-Methode

Beschreibung
Verschiebt eine angegebene Datei oder einen angegebenen Ordner von einem Ort an einen anderen.
Syntax
Objekt.Move Ziel
Die Syntax der Move-Methode besteht aus folgenden Teilen:
Teil Beschreibung
Objekt Erforderlich. Immer der Name eines File- oder Folder-Objekts.
Ziel Erforderlich. Das Ziel, an das die Datei oder der Ordner verschoben werden soll. Platzhalterzeichen sind nicht zulässig.
Anmerkungen
Die Ergebnisse der Move-Methode bei einem File- oder Folder-Objekt sind mit den Operationen identisch, die bei der Verwendung von FileSystemObject.MoveFile oder FileSystemObject.MoveFolder durchgeführt werden. Beachten Sie aber, daß die alternativen Methoden zum Kopieren mehrerer Dateien oder Ordner in der Lage sind.
Anzeige
AW: Verschieben von Dateien
Dateien
Option Explicit

Sub schieben()
Const STRQUELLE As String = "C:\Eigene Dateien\*.xls"
Const STRZIEL As String = """C:\Secret Service\"
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile STRQUELLE, STRZIEL
End Sub

Ulf
Anzeige
AW: Verschieben von Dateien
09.11.2004 18:19:28
Dateien
Ulf,
Ich habe das Makro sofort getestet mit
-Anpassung auf 2 vorhandene Directories
-Verzicht auf die dreifachen ".
Funktioniert super.
Ganz herzlichen Dank
Manfred

Sub schieben()
Const STRQUELLE As String = "C:\temp\*.xls"
Const STRZIEL As String = "C:\tempmm\"
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile STRQUELLE, STRZIEL
End Sub

Anzeige
AW: Verschieben von Dateien
Dateien
Das kommt davon, wenn man aus der Hüfte schießt, verzeih mir.
Ulf
AW: Verschieben von Dateien
10.11.2004 22:15:13
Dateien
Ulf,
Ich bin heil froh das Du mir den Code geschickt hast. Ein kleiner eigener Beitrag stärkt mein Selbstbewusstsein.
Hast Du eine Idee wie das mit geschützten Verzeichnissen ist? Gilt dann meine Berechtigung? Das Programm soll letztlich in definierten Abständen prüfen ob Dateien vorliegen und diese dann in geschützte Verzeichnisse überführen, damit sie nicht gelöscht sondern nur noch gelesen werden können.
Ich müsste mich als evtl. als Admin einloggen und das Programm starten, dann den Benutzer wechseln und normal weiterarbeiten...?
Nochmal Danke fürs Programm.
Manfred
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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 Excel VBA verschieben


Schritt-für-Schritt-Anleitung

Um Dateien mit Excel VBA zu verschieben, kannst du das FileSystemObject verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub schieben()
    Const STRQUELLE As String = "C:\Eigene Dateien\*.xls"
    Const STRZIEL As String = "C:\Secret Service\"
    Dim objFSO As Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.MoveFile STRQUELLE, STRZIEL
End Sub
  1. Passe die Pfade STRQUELLE und STRZIEL an deine Bedürfnisse an.
  2. Schließe den VBA-Editor und führe das Makro aus.

Dieser Code verschiebt alle .xls-Dateien aus dem Quellverzeichnis in das Zielverzeichnis. Das ist eine effektive Methode, um eigene dateien zu verschieben und sie vor versehentlichem Löschen zu schützen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Lösung: Überprüfe, ob der Pfad zu den Dateien korrekt ist und ob die Dateien tatsächlich im Quellverzeichnis vorhanden sind.

  • Fehler: "Zielverzeichnis nicht vorhanden"
    Lösung: Stelle sicher, dass das Zielverzeichnis existiert. Andernfalls musst du es zuerst erstellen.

  • Fehler: "Zugriff verweigert"
    Lösung: Überprüfe die Berechtigungen des Zielverzeichnisses. Möglicherweise benötigst du Administratorrechte, um in geschützte Verzeichnisse zu schreiben.


Alternative Methoden

Es gibt mehrere Methoden, um mit VBA Dateien zu verschieben:

  • MoveFolder: Diese Methode kann verwendet werden, um ganze Ordner zu verschieben.
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFolder "C:\temp\Ordner", "C:\ZielOrdner"
  • Shell-Befehl: Eine andere Möglichkeit ist die Verwendung des Shell-Befehls in VBA:
Shell "cmd /c move C:\temp\*.xls C:\Secret Service\", vbHide

Praktische Beispiele

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

  1. Verschieben mehrerer Dateitypen:
Sub verschiebenMehrererDateitypen()
    Dim objFSO As Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.MoveFile "C:\temp\*.xls", "C:\Secret Service\"
    objFSO.MoveFile "C:\temp\*.docx", "C:\Secret Service\"
End Sub
  1. Verschieben in einem zeitgesteuerten Prozess:

Du kannst das Makro so einstellen, dass es zu bestimmten Zeiten ausgeführt wird, z.B. jede Stunde. Dazu kannst du die Application.OnTime Methode verwenden.


Tipps für Profis

  • Nutze Error Handling, um Fehler abzufangen und entsprechende Meldungen zu geben:
On Error Resume Next
objFSO.MoveFile STRQUELLE, STRZIEL
If Err.Number <> 0 Then
    MsgBox "Fehler beim Verschieben: " & Err.Description
End If
  • Erstelle eine Funktion, die eine Liste der verschobenen Dateien zurückgibt, um den Überblick zu behalten.

FAQ: Häufige Fragen

1. Wie kann ich ein geschütztes Verzeichnis verwenden?
Um in ein geschütztes Verzeichnis zu schreiben, benötigst du Administratorrechte. Stelle sicher, dass du die erforderlichen Berechtigungen hast.

2. Kann ich das Makro automatisch ausführen lassen?
Ja, du kannst das Makro so planen, dass es zu bestimmten Zeiten läuft, indem du die Application.OnTime Funktion verwendest.

3. Was passiert mit Dateien, die bereits im Zielverzeichnis vorhanden sind?
Wenn eine Datei mit demselben Namen im Zielverzeichnis existiert, wird sie überschrieben. Stelle sicher, dass du dies in deiner Logik berücksichtigst, um Datenverlust zu vermeiden.

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