Skip to content

Instantly share code, notes, and snippets.

@guwidoe
Last active June 2, 2025 13:41
Show Gist options
  • Save guwidoe/6f0cbcd22850a360c623f235edd2dce2 to your computer and use it in GitHub Desktop.
Save guwidoe/6f0cbcd22850a360c623f235edd2dce2 to your computer and use it in GitHub Desktop.
Cross-platform VBA Function to get the OneDrive/SharePoint Url path/link from a local path of a locally synced folder
' Cross-platform VBA Function to get the OneDrive/SharePoint Url path (link)
' from a local path of a locally synced folder (Works on Windows and on macOS)
'
' The functionality previously provided in this gist is now available in the
' 'GetRemotePath function from the following gist:
' https://gist.github.com/guwidoe/038398b6be1b16c458365716a921814d
' Please use that instead!
@Bowman99
Copy link

Bowman99 commented Nov 21, 2023

Hi, i use your awesome function and encountered an issue a few days ago that it doesn't give me the converted path anymore. but instead the https url.
What has happened, and how do i solve this :)
i use this one on stack overflow i might add.
https://stackoverflow.com/questions/77514627/save-email-attachment-to-sharepoint-onedrive/77517760?noredirect=1#comment136664713_77517760
In the top post where i explain my issue.

@guwidoe
Copy link
Author

guwidoe commented Nov 21, 2023

Hi @Bowman99, just to clarify: You have an HTTPS URL and you want to convert it to a local path? Then you are commenting under the wrong gist. 😊
Please try updating your function to the latest version which you can find here: https://gist.github.com/guwidoe/038398b6be1b16c458365716a921814d

If you still have the same issue afterwards let me know!

@Bowman99
Copy link

Hi buddy! Thanks for answering, yes you are right!
I'll try to update to the new code and ill get back to you.
Cheers!

@Bowman99
Copy link

Bowman99 commented Nov 21, 2023

Oh my god i love you :) It worked to update the code. I should’ve seen that explanation in the code sorry. I’ll look better next time!
Thank you so much for this, and your code over all guwidoe!

@BlakeR94
Copy link

BlakeR94 commented Apr 9, 2024

Hi @guwidoe,

I have run into a similar error that was found on GetLocalOneDrivePath.bas.vb

The debugger is shooting up error 457, “This key is already associated with an element of this collection”, at line 1164:
locToWebColl.Add VBA.Array(locRoot, webRoot, email, _
mainSyncID, mainSyncFind, dirName), locRoot

This has since been fixed but has the same bug been applied here?

Appreciate the help!

@Bowman99
Copy link

Bowman99 commented Apr 9, 2024

Hi @guwidoe,

I have run into a similar error that was found on GetLocalOneDrivePath.bas.vb

The debugger is shooting up error 457, “This key is already associated with an element of this collection”, at line 1164: locToWebColl.Add VBA.Array(locRoot, webRoot, email, _ mainSyncID, mainSyncFind, dirName), locRoot

This has since been fixed but has the same bug been applied here?

Appreciate the help!

Have you tried the last version?

@BlakeR94
Copy link

BlakeR94 commented Apr 9, 2024

yes, currently running the latest Updated: 2023/10/02

@guwidoe
Copy link
Author

guwidoe commented Apr 9, 2024

Hi @BlakeR94, thanks for the notice... You are right, not all bugfixes are implemented here. I will update the function today and let you know once its done!

@BlakeR94
Copy link

BlakeR94 commented Apr 9, 2024

Awesome, Thank you!

@guwidoe
Copy link
Author

guwidoe commented Apr 15, 2024

@BlakeR94, I have now updated the function, sorry for the delay!

@BlakeR94
Copy link

Working perfectly, thank you!

@monitom
Copy link

monitom commented Sep 18, 2024

Hi @guwidoe,

I am encountering the same error as BlakeR94: "Run-Time error '457': The key is already associated with an element of this collection."

It's on line 5530 of my code...

5530 locToWebColl.Add VBA.Array(locRoot, webRoot & "/" & cid, email, _ syncID, syncFind, dirName), Key:=locRoot

Not entirely sure why this would error here?

Thanks!
Tom

@guwidoe
Copy link
Author

guwidoe commented Oct 5, 2024

Hi @monitom and sorry for the late reply.
There seem to have been some OneDrive updates and I'll have to update this function accordingly.
Can you check if the GetRemotePath function from the current version of LibFileTools works on your machine?

@monitom
Copy link

monitom commented Oct 11, 2024

Hi @monitom and sorry for the late reply. There seem to have been some OneDrive updates and I'll have to update this function accordingly. Can you check if the GetRemotePath function from the current version of LibFileTools works on your machine?

Hi @guwidoe - No worries at all. Thanks for your reply.

GetRemotePath in LibFileTools worked correctly for my purposes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment