Microsoft OneDrive Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
c
crackwood01
Membre fidèle
Membre fidèle
Messages : 212
Appréciations reçues : 3
Inscrit le : 7 mars 2016
Version d'Excel : 2016

Message par crackwood01 » 28 février 2017, 00:27

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!
Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 190
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 28 février 2017, 01:36

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
Modifié en dernier par laceline le 28 février 2017, 03:03, modifié 1 fois.
c
crackwood01
Membre fidèle
Membre fidèle
Messages : 212
Appréciations reçues : 3
Inscrit le : 7 mars 2016
Version d'Excel : 2016

Message par crackwood01 » 28 février 2017, 01:38

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.
Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 190
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 28 février 2017, 01:43

crackwood01, le forum,

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


LaCéline
Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 190
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 28 février 2017, 03:03

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
c
crackwood01
Membre fidèle
Membre fidèle
Messages : 212
Appréciations reçues : 3
Inscrit le : 7 mars 2016
Version d'Excel : 2016

Message par crackwood01 » 28 février 2017, 03:15

Merci je vais tester
c
crackwood01
Membre fidèle
Membre fidèle
Messages : 212
Appréciations reçues : 3
Inscrit le : 7 mars 2016
Version d'Excel : 2016

Message par crackwood01 » 28 février 2017, 03:41

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 ......... :roll: .
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

Avatar du membre
laceline
Membre fidèle
Membre fidèle
Messages : 190
Inscrit le : 3 janvier 2017
Version d'Excel : 2016

Message par laceline » 28 février 2017, 13:38

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
c
crackwood01
Membre fidèle
Membre fidèle
Messages : 212
Appréciations reçues : 3
Inscrit le : 7 mars 2016
Version d'Excel : 2016

Message par crackwood01 » 28 février 2017, 13:43

Oui merci, mais comme je disais mon but ultime serait de toujours passer par le web.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message