Bonjour,

J'ai créé une macro dans excel j'ai des erreurs que je ne comprends pas

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
 
Imports System.xml

Sub Main()
    
        Const URLString As String = "http://xxxxxxxxxxxxxxxxx"
        Dim reader As XmlTextReader = New XmlTextReader(URLString)        Do While (reader.Read())
            Select Case reader.NodeType
                Case XmlNodeType.Element 'Afficher le début de l'élément.
                    Console.Write ("<" + reader.Name)
                    If reader.HasAttributes Then 'Si des attributs existent
                        While reader.MoveToNextAttribute()
                            'Afficher le nom et la valeur de l'attribut.
                            Console.Write(" {0}='{1}'", reader.Name, reader.Value)
                        End While                    End If
                    Console.WriteLine (">")
                Case XmlNodeType.Text 'Afficher le texte inclus dans chaque élément.
                    Console.WriteLine (reader.Value)
                Case XmlNodeType.endElement 'Afficher la fin de l'élément.
                    Console.Write ("</" + reader.Name)
                    Console.WriteLine (">")
            End Select
        Loop

    End Sub
les lignes en rouge sont les erreurs. Il ne comprend pas la classe XmlTextReader etc

La macro sert à lire des données XML à partir d'une url. La page où mêne l'url est un code xml.

Sinon j'ai un autre code qui est cencé faire la même chose mais j'ai aussi des erreurs là-dessus voici le code :

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
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://xxxxxxxxxxxxxxxxxxxx")
 
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
        numligne = numligne + 1
    Next
    res = 1
End If
 
End Sub
ici, la macro s'éxecute mais j'ai seulement un message d'erreur avec

Erreur : GetXML
Erreur système : -2146697208

Est-ce que quelqu'un aurait une solution svp ? Les scripts sont-ils bon ou pas ? Une autre idée de code ...? Enfin je prends tout !

Merci d'avance
Cordialement