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

Mit Excel VBA auf OneDrive speichern

Forumthread: Mit Excel VBA auf OneDrive speichern

Mit Excel VBA auf OneDrive speichern
08.11.2023 15:34:47
Thomas
Hallo, ich habe eine Exceldatei die ich über VBA immer auf einem lokalen Laufwerk gespeichert habe und nun aber auf einem OneDrive Speichern möchte.

Lokal hab ich die Datei immer so gespeichert
ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "\Sicherung\DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext)


Da ThisWorkbook.path aber auf dem OneDrive leider nicht klappt habe ich es nun so versucht

Dim Ext As String

Dim FSO As Object
Dim Pfad As String

Set FSO = CreateObject("Scripting.FileSystemObject")
Ext = FSO.Getextensionname(ThisWorkbook.Name)

Pfad = FSO.GetAbsolutePathName(ThisWorkbook.Path)

ActiveWorkbook.SaveCopyAs (Pfad & "\Sicherung\DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext)


Aber auch das klappt leider nicht, ich bekomme die Fehlermeldung

Laufzeitfehler 1004 Anwendungs oder objektorientierter Fehler

Was mache ich falsch?

Danke
MFG
Thomas
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mit Excel VBA auf OneDrive speichern
08.11.2023 17:27:50
RPP63
Moin!
Hast Du es schon mal mit Environ("OneDrive") probiert?
Dann geht es zunächst auf die Festplatte und müsste stante pede synchronisiert werden.

Gruß Ralf
AW: Mit Excel VBA auf OneDrive speichern
09.11.2023 12:07:25
Thomas
Hi, nein das hab ich noch nicht probiert, ich hab es aber jetzt mal noch so versucht
  ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "\Sicherung\DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext)
und so
 ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "/Sicherung/DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext)

was leider einen Fehler aus wirft das die Datei nicht gefunden wird.

Wenn ich dann das ActiveWorkbook.SaveCopyAs ändere in ActiveWorkbook.SaveAs , also das es dann so aussieht
ActiveWorkbook.SaveAs (ThisWorkbook.Path & "/Sicherung/DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext)

dann funktioniert es ohne Probleme, die Datei wird dann in den Korrekten Ordner mit der korrekten Syntax geschrieben.

Bei dem
ActiveWorkbook.SaveCopyAs (ThisWorkbook.Path & "/Sicherung/DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext)

bekomme ich einen Laufzeitfehler 1004, bei dem SaveAs klappt es...

Aber wieso nicht bei SaveCopyAs?
Anzeige
AW: Mit Excel VBA auf OneDrive speichern
09.11.2023 13:39:52
Thomas
Also hiermit
ActiveWorkbook.SaveCopyAs (Environ("OneDrive") &
klappt es, ich muss dann allerdings deutlich mehr an Pfad im Anschlus daran fix setzen, da nur das OneDrive Verzeichniss ausgewählt wird und nicht bis zum Verzeichnis wo die Arbeitsmappe liegt
Anzeige
AW: Mit Excel VBA auf OneDrive speichern
09.11.2023 12:41:29
RPP63
Dein Code jetzt was genau mit Onedrive zu tun?
AW: Mit Excel VBA auf OneDrive speichern
09.11.2023 13:04:53
Thomas
Das die Daten auf dem OneDrive liegen und ich mit Workbook.SaveAS auch auf dem Onedrive speichern kann aber mit Workbook.SaveAsCopy nicht dort speichern kann,
;
Anzeige

Infobox / Tutorial

Mit Excel VBA auf OneDrive speichern


Schritt-für-Schritt-Anleitung

Um mit Excel VBA eine Arbeitsmappe auf OneDrive zu speichern, kannst du den folgenden Code verwenden. Dieser nutzt Environ("OneDrive"), um den OneDrive-Pfad abzurufen.

Dim Ext As String
Dim FSO As Object
Dim Pfad As String

Set FSO = CreateObject("Scripting.FileSystemObject")
Ext = FSO.GetExtensionName(ThisWorkbook.Name)

Pfad = Environ("OneDrive") & "\Sicherung\DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & "." & Ext

ActiveWorkbook.SaveCopyAs Pfad

In diesem Beispiel wird die Datei in einem Unterordner "Sicherung" im OneDrive-Verzeichnis gespeichert. Stelle sicher, dass dieser Ordner bereits existiert, da VBA es nicht automatisch erstellen kann.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 1004: Anwendungs- oder objektorientierter Fehler

    • Dieser Fehler tritt oft auf, wenn der Pfad nicht korrekt ist oder die Datei nicht gefunden werden kann. Stelle sicher, dass der Pfad zu deinem OneDrive korrekt ist. Nutze dazu Environ("OneDrive").
  2. Datei wird nicht gefunden

    • Wenn du ActiveWorkbook.SaveCopyAs verwendest und die Datei nicht gefunden wird, überprüfe, ob der angegebene Pfad existiert. Möglicherweise musst du den Pfad anpassen, um sicherzustellen, dass er auf das richtige Verzeichnis verweist.

Alternative Methoden

Eine alternative Methode ist die Verwendung von ThisWorkbook.Path in Kombination mit dem OneDrive-Pfad. Hier ist ein Beispiel:

Dim Pfad As String
Pfad = Environ("OneDrive") & Mid(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\"))

ActiveWorkbook.SaveCopyAs Pfad & "\DatenSicherung_" & Application.UserName & "_" & Format(Now, "YYYYMMDD_hhnnss") & ".xlsx"

Diese Methode ermittelt den Pfad der aktuellen Arbeitsmappe und kombiniert ihn mit dem OneDrive-Pfad.


Praktische Beispiele

Hier sind einige praktische Anwendungen, die du in deinen VBA-Projekten verwenden kannst:

  1. Speichern als Kopie im OneDrive:

    ActiveWorkbook.SaveCopyAs (Environ("OneDrive") & "\Kopien\MeineKopie.xlsx")
  2. Automatisches Backup:

    Dim BackupPfad As String
    BackupPfad = Environ("OneDrive") & "\Backups\Backup_" & Format(Now, "YYYYMMDD_hhnnss") & ".xlsx"
    ActiveWorkbook.SaveCopyAs BackupPfad

Beide Beispiele stellen sicher, dass deine Daten sicher in deinem OneDrive gespeichert werden.


Tipps für Profis

  • Überprüfe den OneDrive-Synchronisierungsstatus: Vergewissere dich, dass dein OneDrive korrekt synchronisiert wird, um Datenverlust zu vermeiden.
  • Verwende ThisWorkbook.SaveCopyAs für Backups: Dies ist besonders nützlich, um sicherzustellen, dass das Originaldokument nicht überschrieben wird.
  • Erstelle Unterordner: Organisiere deine Backups, indem du verschiedene Unterordner in deinem OneDrive-Pfad verwendest.

FAQ: Häufige Fragen

1. Warum funktioniert ActiveWorkbook.SaveCopyAs nicht, aber ActiveWorkbook.SaveAs schon? Es kann sein, dass SaveCopyAs versucht, die Datei an einem nicht existierenden Ort zu speichern. Überprüfe den angegebenen Pfad und stelle sicher, dass er korrekt ist.

2. Wie finde ich den genauen OneDrive-Pfad? Du kannst den OneDrive-Pfad in einem VBA-Skript abrufen, indem du Environ("OneDrive") verwendest. Dies gibt dir den Pfad zu deinem OneDrive-Verzeichnis zurück.

3. Was mache ich, wenn ich eine Fehlermeldung bekomme? Überprüfe den Pfad und stelle sicher, dass alle benötigten Ordner existieren. Oft hilft es auch, den Code Schritt für Schritt zu testen, um den genauen Fehler zu identifizieren.

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