Microsoft Excel

Herbers Excel/VBA-Archiv

Eigenen Pfad auslesen bei OneDrive

Betrifft: Eigenen Pfad auslesen bei OneDrive von: Steffen Hamann
Geschrieben am: 22.10.2020 12:11:40

Hallo zusammen,

Ich möchte den Pfad einer geöffneten Excel Datei bestimmen. Die Datei befindet sich auf OneDrive.

Normalerweise mache ich das so:

EigenerPfad = ActiveWorkbook.Path

Dieser Befehl liefert mir folgendes zurück.

"https://my.sharepoint.com/personal/myname/Documents/Documents/Test"

Wenn ich dann aber diesen Pfad ansteuern will, um z. B. andere Dateien die sich in dem Pfad befinden zu öffnen kommt die Fehlermeldung, dass der Pfad nicht existiert.

Verwende ich CurDir kommt der Pfad so:

"C:\UserData\MeinName\OneDrive\Documents\Test"

Dieser Pfad führt nicht zu einer Fehlermeldung. Allerdings kommt bei CurDir eben nicht immer der Pfad der geöffneten Arbeitsmappe.

Was ich bräuchte wäre praktisch ein "CurDir (ActiveWorkbook)" . Das funktioniert aber leider nicht.

Ich kann auch den Pfad nicht hart hinterlegen, da das Excel Tool über OneDrive geshared wird und mehrere Personen das Tool nutzen. Bei jeder Person ist der Pfad ein anderer. Somit muss der Pfad jeweils ermittelt werden.

Hat jemand eine Idee wie ich den Pfad der geöffneten Mappe im Format "C:\...." auslesen kann.

Vielen Dank.

Betrifft: AW: Eigenen Pfad auslesen bei OneDrive
von: Oberschlumpf
Geschrieben am: 22.10.2020 12:38:21

Hi Steffen

VBA = gut??

Ich denk, da ist noch Luft nach oben ;-)
Denn wenn VBA = gut, solltest du wissen, dass man zum Ermitteln von Infos der Datei, in dem die Anfrage erfolgt, besser so vorgehen sollte:

EigenerPfad = ThisWorkbook.Path

Denn mit EigenerPfad = ActiveWorkbook.Path wird "nur" die Info der zum Zeitpunkt der Abfrage aktiven Datei ermittelt!

Das heißt, wenn du irgdwo im Code z Bsp
WorkBook("andere Datei").Activate
verwendest, und dann erst später mit EigenerPfad = ActiveWorkbook.Path kommst, wird der Pfad der - zuvor aktivierten - aber nicht! der Datei ermittelt, in der der Code aufgerufen wird.

So kann es also sein (du schreibst ja: "Allerdings kommt bei CurDir eben nicht immer der Pfad der geöffneten Arbeitsmappe."), dass du eine andere, geöffnete Datei mit dem Pfad-Code abfragst.

Aber das alles von mir ist nur eine Vermutung...

Hilfts denn?

Ciao
Thorsten

Betrifft: AW: Eigenen Pfad auslesen bei OneDrive
von: Steffen Hamann
Geschrieben am: 22.10.2020 14:24:15

Hi Oberschlumpf,

Velen Dank für Deine Antwort. Das Problem liegt aber wo anders und es spielt hier keine Rolle ob ich ThisWorkbook oder ActiveWorkbook nehme.

Bei beiden Varianten erhalten ich den Pfad als "https://....." und eben nicht als "C:\...", dass ich verwenden müsste.

Betrifft: Probiere es mal so...
von: Case
Geschrieben am: 22.10.2020 14:50:58

Hallo Steffen, :-)

... der Spur nach (getestet): ;-)
Option Explicit
Public Sub Main()
    With CreateObject("Scripting.FileSystemObject")
        Debug.Print .GetAbsolutePathName(ThisWorkbook.Name)
    End With
End Sub
Servus
Case

Betrifft: AW: Probiere es mal so...
von: Steffen Hamann
Geschrieben am: 22.10.2020 14:56:12

Klasse!!! Funktioniert!!

Vielen Dank!!!

Betrifft: AW: Eigenen Pfad auslesen bei OneDrive
von: Steffen Hamann
Geschrieben am: 22.10.2020 14:49:59

Vielleicht habe ich mich etwas unklar ausgedrückt.

Die Datei "Test.xlsm" liegt auf "C:\UserData\MeinName\OneDrive\Documents\Test"

Wenn ich die Datei "Test.xlsm" öffne und den Code
EigenerPfad = ActiveWorkbook.Path
oder
EigenerPfad = ThisWorkbook.Path ausführe sagt mir Excel, dass die Datei "Test.xlsm" im Folder "https://my.sharepoint.com/personal/myname/Documents/Documents/Test" liegt.

Ich müsste aber den Pfad "C:\UserData\MeinName\OneDrive\Documents\Test" erhalten um dann im weiteren Verlauf keine Fehlermeldung zu erhalten.

Beiträge aus dem Excel-Forum zum Thema "Eigenen Pfad auslesen bei OneDrive"