Microsoft OneDrive

Bonjour Forum,

En ce moment j'utilise conjointement OneDrive et Excel (vba) en associant un chemin du disque dur exemple: C:/Users/Nom/OneDrive.

Le probleme c'est que si je ne suis pas sur mon ordinateur ( ou un ordinateur qui aurait le même chemin ( ou qui n'est pas connecté à mon OneDrive)) je ne peux pas accéder aux fichiers dans le OneDrive Folder.

Je peux facilement remplacer le nom du User par une variable mais reste que, ce que j'aimerais vraiment c'est de pouvoir synchroniser mes fichiers à partir de n'importe quel ordinateur.

Voici comment je fais en ce moment:

Sub Truc()
Dim Profil As String
Profil = Feuil1.Range("M1").Value

MonRepertoire = "C:\Users\" & Profil & "\OneDrive - machintruc\\____DOSSIER EN COURS____\"
End Sub

Existe-t-il une facon de se connecter directement à partir des identifiants OneDrive? Si je ne peux avoir ce chemin si je suis sur l'ordinateur d'un ami par exemple (je ne veux pas au préalable configurer le dossier avec Windows)

Merci!

crackwood01, le forum,

À tester :

Sub Truc()
Dim Profil As String
Dim MonRepertoire As String

Profil = Environ("username")

MonRepertoire = "C:\Users\" & Profil & "\OneDrive - machintruc\\____DOSSIER EN COURS____\"
End Sub

LaCéline

Merci pour la réponse mais je ne comprends pas trop.

C'est deja ce que je fais


Je ne veux pas passer par le disque local mais directement en ligne.

crackwood01, le forum,

Désolée, je n'ai que dynamisé la lecture du nom du profil.

Je reviens...

LaCéline

crackwood01, le forum,

Je l'ai testé sur deux postes de travail.

Le numéro d'identification est le même, si tu es connecté avec le même compte Onedrive.

Sub Truc()
Dim Profil As String

Profil = "https://d.docs.live.net/342625d4746c7dgb" ' Le numéro d'identification est le même si tu es connecté avec le même compte Onedrive

Workbooks.Open Filename:=Profil & "/TestsExcelVba/MonFichierTest.xlsm"

End Sub

Pour trouver ton numéro d'identification, tu utilises l'enregistreur de macro et tu enregistres-sous ou tu ouvres un fichier sur ton dossier local Ondrive (C:\Users\ ton nom d'usager\OneDrive).

LaCéline

Merci je vais tester

Bonjour,

en passant merci pour la fonction ENVIRON je ne connaissais pas!

moi ce que ca me donne quand j'essaie avec l'enregistreur

Est-ce que c'Est parce que c'Est un compte Business Exchange?

Sub Truc()

ActiveWorkbook.SaveAs Filename:= _
                "https://nom-my.sharepoint.com/personal/nom_domaine_com/Documents/test_airplane.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
End Sub

Bref, merci beaucoup ca fonctionne!

Réflexion:

Ma méthode en passant par le disque dur me dépannait pour travailler hors connexion ......... .

Peut-être utiliser une fonction pour détecter si j'ai une connexion internet ..


Pour ce que ca coute mettre le code:

Private Declare PtrSafe Function InternetGetConnectedState _
   Lib "wininet.dll" (ByRef dwflags As Long, _
   ByVal dwReserved As Long) As Long
Private Const INTERNET_CONNECTION_MODEM As Long = &H1
Private Const INTERNET_CONNECTION_LAN As Long = &H2
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20

Function IsInternetConnected() As Boolean
    Dim L As Long
    Dim R As Long
    R = InternetGetConnectedState(L, 0&)
    If R = 0 Then
        IsInternetConnected = False
    Else
        If R <= 4 Then
            IsInternetConnected = True
        Else
            IsInternetConnected = False
        End If
    End If
End Function

Sub ConnexionEtat()
    If IsInternetConnected() = True Then
        Range("A1").Value = "OUI" ' en ligne
    Else
       Range("A1").Value = "NON" ' hors ligne
    End If
End Sub

crackwood01, le forum,

Je ne suis pas une spécialiste de OneDrive. J'ai donc fait d'autres tests suite à ton dernier code.

On peut accéder aux documents en ligne ou hors ligne avec ce code.

Il n'y aurait donc pas nécessité de tester si on est en ligne ou hors ligne.

Sub Truc2()
Dim Profil As String
Dim MonRepertoire As String

Profil = "C:\Users\ton nom d'usager\OneDrive\"
 Workbooks.Open Filename:=Profil & "/TestsExcelVba/MonFichierTest.xlsm"
End Sub

LaCéline

Oui merci, mais comme je disais mon but ultime serait de toujours passer par le web.

Rechercher des sujets similaires à "microsoft onedrive"