Bonjour,
J'ai trouvé via ce forum un code qui réponds à mon besoin mais je n'arrive pas à l'adapter à mon Sharepoint et j'aimerai des explications afin d'y arriver.
Mon but est de remplir une liste sharepoint existante automatiquement depuis un excel (qui est stocké sur mon Sharepoint mais que je dois ouvrir pour faire tourner une macro)
dans ce sujet http://www.developpez.net/forums/d15...via-excel-vba/ , je trouve le code suivant:
prmièrement, quelle url mettre pour mon sharepoint? celle de la page d'accueil, celle de ma liste? Pour l'example, voici le lien de ma liste à mettre à jour: https://.../projects/A035000082072/T.../AllItems.aspx
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Private Sub CommandButton21_Click() Add_Item "TESTLIST", "http://Sharepointsite/", "My new Value", "Title" End Sub Sub Add_Item(ListName As String, SharepointUrl As String, ValueVar As String, FieldNameVar As String) Dim objXMLHTTP As MSXML2.XMLHTTP Dim strListNameOrGuid As String Dim strBatchXml As String Dim strSoapBody As String Set objXMLHTTP = New MSXML2.XMLHTTP strListNameOrGuid = ListName strBatchXml = _ "<Batch OnError=""Continue"" ListVersion=""1"">" & _ "<Method ID=""1"" Cmd=""New"">" & _ "<Field Name='ID'>New</Field>" & _ "<Field Name=""" & FieldNameVar & """>" & ValueVar & "</Field>" & _ "</Method>" & _ "</Batch>" objXMLHTTP.Open "POST", SharepointUrl + "_vti_bin/Lists.asmx", False objXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=""UTF-8""" objXMLHTTP.setRequestHeader "SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems" strSoapBody = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " _ & "xmlns:xsd='http://www.w3.org/2001/XMLSchema' " _ & "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><UpdateListItems " _ & "xmlns='http://schemas.microsoft.com/sharepoint/soap/'><listName>" & strListNameOrGuid _ & "</listName><updates>" & strBatchXml & "</updates></UpdateListItems></soap:Body></soap:Envelope>" ActiveCell.Value = strSoapBody objXMLHTTP.send strSoapBody If objXMLHTTP.Status = 200 Then ActiveCell.Value = objXMLHTTP.responseText ' Do something with response End If Set objXMLHTTP = Nothing End Sub
J'ai essayé plusieurs combinaisons en ajoutant le _vti_bin/Lists.asmx mais je tombe toujours sur la page "List" qui me done la liste des opérations supportées.
Ensuite pour FieldNameVar et ValueVar c'est explicite: le nom du champ que je veux remplir et sa valeur. Par contre, vu que je veux importer des lignes entières, il me faut surement préciser les champs 1 par 1?
Merci d'avance
Sinon, un peu de background:
J'ai crée une macro excel qui se connecte à SAP pour extraire des listes d'objets sur lesquel nous travaillons. Je traite mes extraits puis stocke tout sur une worksheet bien propre avec des champs libres que des utilisateurs vont devoir remplir manuellement (ex: commentaire sur l'objet).
L'idée est d'avoir l'excel contenant la macro dans sharepoint comme ça on peux la lancer de quasiment n'importe quel pc et sortir nos KPIs. Ces KPIs sont automatiquement affichés dans le Sharepoint.
Pour la partie remplissage, plutôt que tous les utilisateurs ouvrent le même fichier excel, je veux que ma macro écrive les listes à compléter dans une liste sharepoint. Elle récupérera ensuite les donnéees entrées par les utilisateurs la prochaine fois qu'elle sera exécutée.




Répondre avec citation





Partager