IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Sharepoint .NET Discussion :

Re-connexion à Sharepoint via VBA


Sujet :

Développement Sharepoint .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut Re-connexion à Sharepoint via VBA
    Bonjour,

    Je travaille sur une macro VBA qui viens lire/ajouter/mettre à jour des informations sur une liste sharepoint.

    Le fichier contenant ma macro est hébergé sur le sharepoint afin d'y publier un graphique directement.

    Mon problème est: au bout d'un moment mes procédures venant lire sharepoint ne renvoient pas de bonnes information. J'imagine que Sharepoint coupe la connection.

    En détail:
    j'ouvre mon sharepoint via firefox, entre mon user et mdp
    j'ouvre mon fichier xlsm et lance une macro
    la macro va lire une liste dans mon sharepoint (vu que je viens de m'y connecter, pas de soucis)
    la macro va faire d'autres choses (chercher des données dans SAP, traiter le tout...)
    la macro ajoute/ met à jour certains éléments dans la liste sharepoint.
    -Ici- est le problème. Ma macro travaille souvent 5-10 min et parfois donc, l'écriture dans sharepoint est impossible. J'en conclue donc à une déco automatique.

    Comment puis-je faire pour me reconnecter au sharepoint afin d'être sûr d'écrire dans ma liste?

    Pour info, j'ai l'impression que les paramètre de ma boite sont contraignant:
    jen'arrive à commander Sharepoint qu'avec des requêtes SOAP via XMLHTTP. De plus, dans VBA, au niveau des références possible je n'ai pas accès à certains connecteurs du genre, ACE, Jet, OLE ou autre (je m'y perd dans ces connecteurs par ailleurs)

    J'ai donc besoin d'aide pour écrire une chaine de connection à sharepoint, ou de rappeller les credentials passés à windows (car une fois déco, excel me propose de me reco quand je veux sauver le fichier hébergé sur le sharepoint)

    Si vous avez des chaines de connexion, merci de m'indique si VBA nécessite certaines références afin de vérifier les limitations mentionnées plus haut.

    Merci d'avoir lu jusqu'ici!

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Bonjour,

    c'est sans doute bourrin mais pouvez vous forcer une requete vers sharepoint toutes les 30 secondes par exemples? Sans rien demander grand chose, juste pour maintenir la connexion..

    Ensuite, vous dites que la macro travaille 5 minutes, cela veut dire qu'elle mets 5 minutes à mettre à jour l'item après l'avoir récupérer? Et dans cette condition sharepoint pète? Si oui, difficile de trouver une parade sauf peux etre faire des updates plus petit et récupérer l'item après coup à chaque fois

  3. #3
    Membre averti
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut
    C'est l'unique solution que je vois pour le moment en effet.

    Les 5 min, ce sont le traitement des données de SAP dans mon excel. C'est après ces 5 min que je veux écrire mes résultats dans le sharepoint et où je fait fasse à une déco.

    Ce qui est drole, c'est que si je relance une procédure pour écrire dans ma liste, le sharepoint est reco à moitié: je peux enregistrer mon excel dans le sharepoint mais la procédure n'aura rien écrit dans la liste (je le vois à la réponse XML qui n'est pas celle lors de l'écrire. Pourtant le serveur réponds 200)

  4. #4
    Membre averti
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut
    Ok, donc ce que je vais faire, c'est placer un petit fichier txt et le télécharger toutes les 30s. Par contre, vu que cela doit tourner en parallèle de mes autres opérations, il me faut un vbs.

    Sauf que je n'arrive pas à traduire le code que j'ai.
    Est il possible d'adapter le code suivant en vbs?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Declare 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
     
    Sub ReconnectSP()
    Dim i As Integer
    Dim strSavePath As String
    Dim returnValue As Long
     
    Const strUrl As String = "https://.........../ReconnectionFile.txt"
     
    strSavePath = "C:\Temp\ReconnectionFile.txt"
    'strSavePath = "C:\Users\...\Desktop\...\...\...\ReconnectionFile.txt"
    returnValue = URLDownloadToFile(0, strUrl, strSavePath, 0, 0)
     
    End Sub
    J'ai bien trouvé un script déjà fait, mais je n'arrive pas à le faire tourner non plus. J'ai bien mis l'adresse de mon sharepoint jusqu'au dossier contenant mon fichier à télécharger mais quand je lance le script depuis cmd, j'obtien l'erreure suivante: Erreur ligne <7,1> erreur d'exec....: indice en dehors de la plage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    option explicit
    Dim xmlhttp
    Dim sharepointUrl
    Dim fileName
    Dim tsIn
    Dim sBody
    fileName = wscript.arguments(0)
    Dim ofc
    Dim ofile
    set ofc = createobject("Scripting.FileSystemObject")
    set ofile = ofc.getfile(fileName)
    set tsIn = ofile.openAsTextstream
    sBody = tsIn.readAll
    tsIn.close
    sharepointUrl = "http://.../..."
    Dim sharepointFileName
    sharepointFileName = sharepointUrl & "/" & ofile.name
    msgbox sharepointFileName
    set xmlHttp = createobject("MSXML2.XMLHTTP.4.0")
    xmlhttp.open "PUT",sharepointFileName,false
    xmlhttp.send sBody
    msgbox xmlhttp.status

  5. #5
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Bonjour,

    pourquoi télécharger un fichier? Faire une requete toute simple d'un élément par exemple cela ne fonctionne pas?

Discussions similaires

  1. [2010] Import d'une liste sharepoint via VBA
    Par Arcaneur dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 29/07/2014, 16h33
  2. Connexion sur un Serveur HTTP via VBA Access 2003
    Par bibob20 dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/02/2009, 09h31
  3. connexion a un site internet sur IE via VBA excel
    Par deubelte dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/07/2008, 12h16
  4. connexion a un site internet via vba
    Par deubelte dans le forum Langage
    Réponses: 2
    Dernier message: 16/07/2008, 11h27
  5. Connexion à Teradata via VBA
    Par denils dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/06/2007, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo