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

Forumthread: FileCopy() - Zugriff verweigert

FileCopy() - Zugriff verweigert
20.12.2018 11:22:24
Peter
Hallo zusammen
ich will mit FileCopy() Personal.xlsb nach Googledrive kopieren, damit ich diese Datei schnell auf meine anderen Rechner laden kann - doch erhalte ich immer den Fehlercode: Zugriff verweigert
Kopiere ich eine andere Datei zB. test.xlsm aus dem gleichen Ordner nach GoogleDrive funktioniert es
Kann mir einer sagen, warum? resp. was muss ich tun um Personal.xlsb kopieren zu können.
Sub X_Copy_File()
Dim sFil$, sDirUsr$, sDirExe$, sDirGoo$
sDirUsr = Environ("UserProfile")
sDirGoo = sDirUsr & "\Google Drive\=Temporär\"
sDirExe = sDirUsr & "\AppData\Roaming\Microsoft\Excel\XLSTART\"
'sFil = "PERSONAL.XLSB" 'Fehler Zugriff verweigert
sFil = "test.xlsm"   'ohne Fehler
Call to_Copy_File(sDirExe, sDirGoo, sFil) '
End Sub

Sub to_Copy_File(ByVal SrcPath As String, ByVal DstPath As String, ByVal FileName As String) ' _
Su181220 von Web
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

vielen Dank für Euren Tipp
lg Pepi
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Schau mal...
20.12.2018 11:51:36
UweD
Hallo
Die Datei ist ja geöffnet.
So gehts...
Sub X_Copy_File()
    Dim sFil$, sDirUsr$, sDirExe$, sDirGoo$
    sDirUsr = Environ("UserProfile")
    sDirGoo = sDirUsr & "\Google Drive\=Temporär\"
    sDirExe = sDirUsr & "\AppData\Roaming\Microsoft\Excel\XLSTART\"
    sFil = "PERSONAL.XLSB" 'Fehler Zugriff verweigert 
    Call to_Copy_File(sDirExe, sDirGoo, sFil) ' 
End Sub


Sub to_Copy_File(ByVal SrcPath As String, ByVal DstPath As String, ByVal FileName As String)
    Dim src As Variant, dst As Variant
    Dim FsyObjekt As Object
    src = SrcPath & FileName    ' Namen der Quelldatei festlegen. 
    dst = DstPath & FileName    ' Namen der Zieldatei festlegen. 
    
    Set FsyObjekt = CreateObject("Scripting.FileSystemObject")
    FsyObjekt.CopyFile src, dst ' Quell- in Zieldatei kopieren 
End Sub

LG UweD
Anzeige
AW: Schau mal...
20.12.2018 12:40:35
Peter
Supper - vielen Dank, Lösung von Neptun funktioniert perfekt - lg Pepi
AW: Schau mal...
20.12.2018 12:40:37
Peter
Supper - vielen Dank, Lösung von Neptun funktioniert perfekt - lg Pepi
..wer ist Neptun ? Nepumuk ! wäre OK !
24.12.2018 18:41:58
robert
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Datei mit fso.copyfile nach Google Drive kopieren


Schritt-für-Schritt-Anleitung

Um eine Datei wie Personal.xlsb mit der Methode fso.copyfile nach Google Drive zu kopieren, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke im Menü auf Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub X_Copy_File()
       Dim sFil As String, sDirUsr As String, sDirExe As String, sDirGoo As String
       sDirUsr = Environ("UserProfile")
       sDirGoo = sDirUsr & "\Google Drive\=Temporär\"
       sDirExe = sDirUsr & "\AppData\Roaming\Microsoft\Excel\XLSTART\"
       sFil = "PERSONAL.XLSB" ' Quell-Datei
       Call to_Copy_File(sDirExe, sDirGoo, sFil)
    End Sub
    
    Sub to_Copy_File(ByVal SrcPath As String, ByVal DstPath As String, ByVal FileName As String)
       Dim src As Variant, dst As Variant
       Set fsoObj = CreateObject("Scripting.FileSystemObject")
       src = SrcPath & FileName
       dst = DstPath & FileName
       fsoObj.CopyFile src, dst ' Datei kopieren
    End Sub
  4. Speichere und führe das Makro aus:

    • Drücke F5, um das Makro auszuführen. Achte darauf, dass die Datei Personal.xlsb nicht geöffnet ist.

Häufige Fehler und Lösungen

  • Fehler: Zugriff verweigert:

    • Dieser Fehler tritt auf, wenn die Datei Personal.xlsb geöffnet ist. Schließe die Datei und versuche es erneut.
  • Fehler: Google Drive Zugriff verweigert:

    • Überprüfe, ob du die richtigen Berechtigungen für den Zielordner in Google Drive hast.

Alternative Methoden

Falls FileCopy nicht funktioniert, kannst du die FileSystemObject-Methode verwenden, die in VBA sehr flexibel ist:

Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "Pfad\zur\Quelldatei", "Pfad\zum\Zielordner"

Diese Methode kannst du auch für andere Dateitypen verwenden und bietet mehr Kontrolle über den Kopiervorgang.


Praktische Beispiele

Hier sind einige praktische Beispiele für den Einsatz von fso.copyfile in verschiedenen Situationen:

  1. Kopiere eine Excel-Datei:

    fso.CopyFile "C:\Users\DeinBenutzername\Documents\test.xlsm", "C:\Users\DeinBenutzername\Google Drive\=Temporär\test.xlsm"
  2. Kopiere eine Textdatei:

    fso.CopyFile "C:\Users\DeinBenutzername\Documents\notiz.txt", "C:\Users\DeinBenutzername\Google Drive\=Temporär\notiz.txt"

Tipps für Profis

  • Verwende fso.copy anstelle von FileCopy, wenn du mit größeren Dateien arbeitest, da dies oft stabiler ist.
  • Denke daran, die Datei vor dem Kopiervorgang zu schließen, um Zugriffsprobleme zu vermeiden.
  • Teste dein VBA-Skript in einer gesicherten Umgebung, bevor du es in produktiven Dateien einsetzt.

FAQ: Häufige Fragen

1. Warum erhalte ich den Fehler "Zugriff verweigert"? Der Fehler tritt auf, wenn die Datei, die du kopieren möchtest, geöffnet ist. Schließe die Datei und versuche es erneut.

2. Was ist der Unterschied zwischen FileCopy und fso.copyfile? FileCopy ist eine eingebaute VBA-Funktion, während fso.copyfile Teil des FileSystemObject ist und mehr Flexibilität bietet, insbesondere bei Fehlerbehandlungen.

3. Kann ich auch andere Dateitypen kopieren? Ja, du kannst mit fso.copyfile alle Dateitypen kopieren, solange du die richtigen Pfade angibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige