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 ;)
 

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 :
Hey Chad,
Try this – Open Internet Explorer with your service account credentials(using Run as). Under Internet Options, on the security tab, click on Local intranet. Click on sites, advanced and add your sharepoint site to the list. Then click on Custom level… and in the User Authentication section, under Logon, select the Automatic logon with current user name and password option. Try scheduling your script now. (For some reason I couldn’t add sites to my Local intranet zone so I configured the Internet zone to use the current username and password. It seems to work). Let me know if it works or not!

À 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 ?:rolleyes:
 

R1-

XLDnaute Junior
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 ?:rolleyes:
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
 

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette