Bonjour,

Je cherche un moyen de convertir une macro excel vba en vb (visual studio 2010). Existe-t-il un outil pour le faire ?
Voici la première macro :

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
Sub SendXML()
    Dim oXMLDoc As MSXML2.DOMDocument
    Dim oDocElement
    Dim oField
    Dim oXMLHttp As MSXML2.XMLHTTP
    Dim strUrl
 
    Set oXMLDoc = New MSXML2.DOMDocument
 
    oXMLDoc.Load ("c:\testPostXML_3.xml")
 
    strUrl = "https://xxxxxxxxxxxxxxxxxxxxx"
 
    Set oXMLHttp = New MSXML2.XMLHTTP
 
    Call oXMLHttp.Open("POST", strUrl, False) 'Asynchrone
 
    oXMLHttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
    oXMLHttp.setRequestHeader "Connection", "keep-alive"
    oXMLHttp.setRequestHeader "Accept", "text/xml, multipart/related,text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
 
    Call oXMLHttp.send(oXMLDoc.XML)
 
    MsgBox oXMLHttp.responseText
    'Test si erreur pendant le post XML
    If oXMLDoc.parseError.ErrorCode <> 0 Then
        MsgBox "Erreur : Post XML " & Chr(10) & oXMLDoc.parseError.reason & "Contactez l'administrateur Support Central."
        'ThisWorkbook.Close savechanges:=False
    End If
 
End Sub
Pour info, cette macro permet de renvoyer des données xml vers une appli web

La deuxième macro :

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
Sub getXML()
    Dim oXMLDoc As MSXML2.DOMDocument
    Dim oDocElement
    Dim oXMLHttp As MSXML2.XMLHTTP
    Dim lstrUrl As String, res As Integer, k As Integer
    Dim wsIO, objNodeListNormal
 
    Set wsIO = ThisWorkbook.Worksheets("Feuil3")
    wsIO.Activate
    wsIO.Range("A2:C65535").ClearContents
    Dim numligne As Integer
 
 
Dim xmlDoc As New MSXML2.DOMDocument30
Dim objNodeList As IXMLDOMNodeList
 
xmlDoc.async = False
xmlDoc.Load ("http://xxxxxxxxxxxxxxxxxxxxxxxx")
 
If (xmlDoc.parseError.ErrorCode <> 0) Then
   Dim myErr
   Set myErr = xmlDoc.parseError
    If myErr.ErrorCode <> 0 Then
        MsgBox "Erreur : Get XML " & Chr(10) & myErr.reason
        'ThisWorkbook.Close savechanges:=False
    End If
    res = 0
Else
    numligne = 2
    Set objNodeListNormal = xmlDoc.getElementsByTagName("tableDrilldown")
    For k = 0 To (objNodeListNormal.Item(0).ChildNodes.Length - 1)
        'Ouverture fichier pour MAJ des descriptions
        wsIO.Cells(numligne, 1) = objNodeListNormal.Item(0).ChildNodes.Item(k).ChildNodes.Item(1).ChildNodes(0).Text
        wsIO.Cells(numligne, 2) = objNodeListNormal.Item(0).ChildNodes.Item(k).ChildNodes.Item(2).ChildNodes(0).Text
        wsIO.Cells(numligne, 3) = objNodeListNormal.Item(0).ChildNodes.Item(k).ChildNodes.Item(3).ChildNodes(0).Text
        wsIO.Cells(numligne, 4) = objNodeListNormal.Item(0).ChildNodes.Item(k).ChildNodes.Item(4).ChildNodes(0).Text
        numligne = numligne + 1
    Next
    res = 1
End If
 
End Sub
Cette macro fait l'inverse de la première

Merci de votre aide
Cordialement