25.09.2024, 07:15
Hallo,
wenn doch doch Onedrive,dannmüssten doch doch die BAckslahes in Slashes gewandelt werden, oder?
Probiere das mal durch:
Teste es im Direktfenster [STRG]+ [G] mit:
Aufrufen kannst du esin deinem jetzt könntest du noch abfangen, ob sich die Datei (also deine Arbeitsmappe) in einem "reinen" lokalen Ordner befindet oder in einem OneDrive Ordner und enstprechent das SetoTop nur mit .... wb.Path oder eben mit GetOneDrifeFolderPath... mit:
wenn doch doch Onedrive,dannmüssten doch doch die BAckslahes in Slashes gewandelt werden, oder?
Probiere das mal durch:
Code:
Function GetOnedriveFolderPath(strPath As String) As String
'Die Arbeitsmappe muss sich im OneDrive Ordner befinden.
Dim strPathLocalOnedriveFolder As String 'ie: C:\Benutzer\....\Onedrive
Dim strWorkbookPath As String 'Variable: the adapted Path replaced "/"
Dim arrPathSubStrings() As String 'The splitted Workbookpath, Split() reutrns an Array
Dim fso As Object 'Object: the standard FileObject with VBScript FileSystemObject (activated with References)
strPathLocalOnedriveFolder = Environ("OneDrive") 'the local Onedrive Paht
arrPathSubStrings = Split(strPath, "/", 5)
strWorkbookPath = Replace(arrPathSubStrings(4), "/", "\")
Set fso = CreateObject("Scripting.FileSystemObject")
GetOnedriveFolderPath = fso.BuildPath(strPathLocalOnedriveFolder, strWorkbookPath)
End Function
Teste es im Direktfenster [STRG]+ [G] mit:
Code:
?GetOnedriveFolderPath(ThisWorkbook.Path)
Aufrufen kannst du esin deinem jetzt könntest du noch abfangen, ob sich die Datei (also deine Arbeitsmappe) in einem "reinen" lokalen Ordner befindet oder in einem OneDrive Ordner und enstprechent das SetoTop nur mit .... wb.Path oder eben mit GetOneDrifeFolderPath... mit:
Code:
Set oTop = oFSO.GetFolder(GetOnedriveFolderPath(wb.path))
theTroother
mag auch vbasteleien.de
mag auch vbasteleien.de