Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro de connexion avec SharePoint

SaRah_Geek

XLDnaute Nouveau
Bonjour,

je souhaite faire une macro qui se lance à l'ouverture du fichier et qui mette à jour un tableau d'après une liste SharePoint.

Ma macro se lance bien, la connexion se fait bien mais je n'arrive pas à rentrer en paramètre le login et MDP nécessaires :

Quel est l'orthographe et l'emplacement pour rentrer ses paramètres en dur dans le code

Code:
Private Sub Workbook_Open()
'-----------------------------------------
' Commande pour effectuer la mise à jour '
'-----------------------------------------

    ActiveWorkbook.Connections("owssvr").Delete ' Supprime l'ancienne connexion
   
    Workbooks("CnnToSP.xlsm").Connections.AddFromFile _
        "C:\Users\User\Desktop\owssvr.iqy" ' Cherche le fichier de connexion
       
    With ActiveWorkbook.Connections("owssvr").OLEDBConnection
        .BackgroundQuery = False ' Permet de terminer toute la Sub avant de continué
       .CommandText = Array( _
        "<LIST><VIEWGUID>{000000-3EC1-4897-A485-0050B62DA3B3}</VIEWGUID><LISTNAME>{0000000-8156-4A3B-BBF3-EF1AF48A16B1}</" _
        , _
        "LISTNAME><LISTWEB>https://quelquechose/_vti_bin</LISTWEB><LISTSUBWEB></LISTSUBWEB><ROOTFOLDER>/02299/_MSI_support/Lists/Fuf</ROOTFOLDER></LIST>")
        .Connection = _
        "OLEDB;Provider=Microsoft.Office.List.OLEDB.2.0;Data Source="""";ApplicationName=Excel;Version=12.0.0.0;"'User Id=MyID;Password=PSD;
        .RefreshOnFileOpen = False
        .SavePassword = False
        .SourceConnectionFile = ""
        .SourceDataFile = ""
        .ServerCredentialsMethod = xlCredentialsMethodNone
        .AlwaysUseConnectionFile = False
        
    End With
    
    With ActiveWorkbook.Connections("owssvr")
        .Name = "owssvr"
        .Description = ""
    End With
    
    ActiveWorkbook.Connections("owssvr").Refresh ' Fait un refresh à la fin de la connexion
End Sub
 

NezQuiCoule

XLDnaute Occasionnel
Re : Macro de connexion avec SharePoint

Bonsoir SaRah

Pas certain de moi pour ce coup-ci, mais je propose quand même si des fois ça venait à fonctionner..

Pour la connexion, remplace par cette ligne :

Code:
.Connection = _
         "OLEDB;Provider=Microsoft.Office.List.OLEDB.2.0;Data Source="""";ApplicationName=Excel;Version=12.0.0.0;User Id=MyID;Password=PSD;"

En fait j'ai juste enlever le commentaire après Version=12.0.0.0;

Il faut ensuite remplacer MyID par l'identifiant et PSD par le password, mais là je t'apprend certainement rien !
En revanche, si les données sont sensibles je conseillerai de créer un userform avec saisie de l'identifiant et du mot de passe avec masque de saisie, dans le sens où n'importe qui sachant faire Alt + F11 pourra voir le mot de passe...

En espérant avoir pu aider
 

SaRah_Geek

XLDnaute Nouveau
Re : Macro de connexion avec SharePoint

Oui malheureusement j'ai déjà testé (c'est pour ça que je les ai laissé en commentaires) mais ça ne fonctionne pas, il ne les prend pas en paramètres ....

Merci quand même
 

NezQuiCoule

XLDnaute Occasionnel
Re : Macro de connexion avec SharePoint

Bonjour,

Effectivement je ne savais pas que c'était volontaire.. J'ai peut-être trouvé une piste intéressante en anglais ici. D'après ce que j'ai compris il y aurait la possibilité d'ajouter le token d'identification de la liste Sharepoint afin de permettre le login automatique une fois sur le site, ce qui du coup éviterait le message.

Je recopie ici le message en question, extrait du fil de discussion du lien ci-dessus :

À tester donc !
 

SaRah_Geek

XLDnaute Nouveau
Re : Macro de connexion avec SharePoint

Merci beaucoup pour cette réponse, cela fonctionne surement mais ne remplie pas le cahier des charges de cette macro. Puisque je dois donner ce fichier excel à un client qui ne dois pas voir les identifiants de connection. Y-a t'il un moyen de le mettre dans le code sans passer par un paramétrage d'IE ?
 

R1-

XLDnaute Junior
J'ai exactement le même problème 7 ans après, je me permet donc de relancer la discussion quelqu'un aurait il de nouvelles pistes ?
 

zoopsys

XLDnaute Nouveau
ma chaine de connexion est la suivante :
Provider=Microsoft.Office.List.OLEDB.2.0;Data Source="";ApplicationName=Excel;Version=12.0.0.0

et mon texte de commande :
<LIST><VIEWGUID>1E9DC997-BA25-48FA-855B-64BD8227D288</VIEWGUID><LISTNAME>057D21CB-FFBD-4A3B-B27E-3C9562DA02F1</LISTNAME><LISTWEB>https://SOCIETE.sharepoint.com/sites/SITE_SHAREPOINT/_vti_bin</LISTWEB><LISTSUBWEB></LISTSUBWEB><ROOTFOLDER>ADRESSE DU DOSSIER SHAREPOINT</ROOTFOLDER></LIST>

Normalement, lors de la première actualisation, cela va demander à l'utilisateur de s'identifier.
Cela va enregistrer la connexion à Sharepoint dans "Données>Obtenir des données>Paramètres des sources de données" et sélectionner "Autorisations globales".

Je me sers de cette connexion pour :
- Lister des fichiers dans un répertoire Sharepoint
- Créer la connexion à Sharepoint pour pouvoir télécharger des fichiers en utilisant la fonction suivante

VB:
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
    ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Function DownloadFromWeb(strURL As String, strDestination As String) As Long

    DownloadFromWeb = URLDownloadToFile(0, strURL, strDestination, 0, 0)
  
End Function
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…