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

ActiveWorkbook.Path und OneDrive

Forumthread: ActiveWorkbook.Path und OneDrive

ActiveWorkbook.Path und OneDrive
31.03.2022 16:40:42
Dietmar
Hallo,
eigentlich war bisher alles gut. Aber seit die "aktive" Excel-Datei auf OneDrive liegt, bekomme ich mit
"ActiveWorkbook.Path" nicht mehr einen Pfadnamen zurück in der Art
"C:\Users\xxx\OneDrive\123\456" zurück sondern
"https://d.doc.live.net/schluessel/...".
Kann mir jemand da weiter helfen, wie ich den ursprünglichen Namen bekomme?
Bein Namen lesen ist es unproblematisch, aber beim Datei erstellen habe ich eine Fehlermeldung, dass nicht geschrieben werden kann.
Viele Grüße
Dietmar
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveWorkbook.Path und OneDrive
31.03.2022 17:03:22
onur
Teste mal

With CreateObject("Scripting.FileSystemObject")
Debug.Print .GetAbsolutePathName(ThisWorkbook.Name)
End With

AW: ActiveWorkbook.Path und OneDrive
01.04.2022 09:14:42
Dietmar
Hallo Onur,
klappt hervorragend. Vielen Dank!
Viele Grüße
Dietmar
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

ActiveWorkbook.Path und OneDrive: So bekommst du den lokalen Pfad


Schritt-für-Schritt-Anleitung

Wenn du mit Excel VBA arbeitest und den Pfad der aktiven Arbeitsmappe (ActiveWorkbook.Path) abrufen möchtest, kann es sein, dass du auf Probleme stößt, wenn die Datei auf OneDrive gespeichert ist. Statt des lokalen Pfades erhältst du möglicherweise eine URL. Hier ist eine einfache Anleitung, um den lokalen Pfad zu erhalten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf die Datei, wähle Einfügen und dann Modul.
  3. Füge den folgenden Code ein:

    Sub GetLocalPath()
        Dim fso As Object
        Set fso = CreateObject("Scripting.FileSystemObject")
        Debug.Print fso.GetAbsolutePathName(ThisWorkbook.Name)
    End Sub
  4. Führe das Makro aus:

    • Klicke auf Ausführen oder drücke F5, um das Makro auszuführen.
    • Der lokale Pfad wird im Direktfenster angezeigt.

Häufige Fehler und Lösungen

  • Fehler: URL statt lokalem Pfad
    Wenn du anstelle eines lokalen Pfades eine URL erhältst, stelle sicher, dass du ThisWorkbook verwendest, um auf die Arbeitsmappe zuzugreifen.

  • Lösung für Schreibfehler:
    Wenn du beim Erstellen von Dateien in OneDrive eine Fehlermeldung erhältst, überprüfe die Berechtigungen und stelle sicher, dass du auf den richtigen Pfad zugreifst.


Alternative Methoden

Eine weitere Möglichkeit, den lokalen Pfad in Excel VBA zu erhalten, besteht darin, die Application.ActiveWorkbook.Path-Eigenschaft zu verwenden. Beachte jedoch, dass dies in der Regel nur funktioniert, wenn die Datei lokal gespeichert ist. Hier ist ein Beispiel:

Sub GetActiveWorkbookPath()
    Dim localPath As String
    localPath = Application.ActiveWorkbook.Path
    Debug.Print localPath
End Sub

Wenn du mit OneDrive arbeitest, ist die vorherige Methode mit GetAbsolutePathName oft zuverlässiger.


Praktische Beispiele

  1. Aktuellen Pfad in eine Zelle schreiben: Du kannst den lokalen Pfad auch direkt in eine Zelle schreiben, um ihn einfach einsehen zu können:

    Sub WritePathToCell()
        Dim fso As Object
        Set fso = CreateObject("Scripting.FileSystemObject")
        Range("A1").Value = fso.GetAbsolutePathName(ThisWorkbook.Name)
    End Sub
  2. Verwendung in einem Dateidialog: Wenn du einen Datei-Dialog öffnen möchtest, um eine Datei im lokalen OneDrive-Pfad zu speichern:

    Sub SaveFileDialog()
        Dim filePath As String
        filePath = Application.ActiveWorkbook.Path & "\MeineDatei.xlsx"
        Application.DisplayAlerts = False
        ThisWorkbook.SaveAs Filename:=filePath
        Application.DisplayAlerts = True
    End Sub

Tipps für Profis

  • Verwende immer ThisWorkbook anstelle von ActiveWorkbook, um sicherzustellen, dass du die korrekte Arbeitsmappe ansprichst, insbesondere wenn mehrere Arbeitsmappen geöffnet sind.
  • Halte deine VBA-Projekte organisiert, indem du Kommentare hinzufügst, um den Code verständlicher zu machen.
  • Teste deinen Code gründlich, insbesondere wenn du mit OneDrive arbeitest, da hier unterschiedliche Verhaltensweisen auftreten können.

FAQ: Häufige Fragen

1. Warum erhalte ich keine lokalen Pfade von ActiveWorkbook.Path?
Das liegt daran, dass die Datei auf OneDrive gespeichert ist. Verwende stattdessen ThisWorkbook oder die GetAbsolutePathName-Methode.

2. Welche Excel-Version benötige ich für diese Methoden?
Die beschriebenen Methoden funktionieren in Excel 2010 und höheren Versionen. Achte darauf, dass du die VBA-Referenzen korrekt gesetzt hast.

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