Percorso del file con OneDrive
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Una funzione per risolvere un problema abbastanza fastidioso incontrato nell'utilizzo di OneDrive. Per chi non lo conoscesse OneDrive è la soluzione cloud di Microsoft e consente di avere uno spazio privato (gratuito fino a 5gb) per archiviare i propri file ma ha anche diverse opzioni business che lo rendono interessante nell'uso aziendale.
E' una sorta di alternativa ai file sul server di rete: si possono condividere file e cartelle con alcuni colleghi e di queste viene aggiornata, in modo trasparente per l'utente, la copia in cloud dei file. In questo modo è più facile lavorare con file di grandi dimensioni e connessioni non sepre presenti o non abbastanza veloci ma condividendo comunque il lavoro con i colleghi.

Il problema è che volendo lavorare con altri file, il mio caso era un DB presente nella stessa cartella del file Excel, i percorsi cambiano. Utilizzando Application.ThisWorkbook.Path si hanno diversi risultati a seconda che si sia collegati i meno, che sia il proprietario della cartella o il collega che la usa, ecc. rendendo di fatto poco pratico l'utilizzo con altri file.
In rete si trovano diverse soluzioni (molti hanno avuto lo stesso problema!) ma nessuna ha funzionato per il mio caso: per risolvere il problema ho scritto la funzione qui sotto.
Nel mio caso funziona in tutte le circostanze e con tutti gli utenti, ma l'ho testata solo nel caso di una azienda: suggerimenti o osservazioni sono sempre bene accette!

Function WorkBook_LocalPath(Wb As Workbook)
  stPath = Wb.Path
    
  Const stDoc As String = "Documents/"
    
  If (Left(stPath, 8) = "https://" And InStr(stPath, stDoc) > 0) Then
    stPath = Mid(stPath, InStr(stPath, stDoc) + Len(stDoc), Len(stPath))
    stPath = Replace(stPath, "/", "\")
     
    Set WS = CreateObject("WScript.Shell")
    stOneDrive = WS.RegRead("HKEY_CURRENT_USER\Environment\OneDrive")

    WorkBook_LocalPath= stOneDrive + "\" + stPath
  Else
    WorkBook_LocalPath= stPath
  End If
End Function
 

data4idea srls - PIva 01881000937 - info@data4idea.it