bonjour, je viens pres de vous solliciter votre aide. j'ai un petit probléme avec mon macro . je veux extraire une partie des données xml sur excel. je charge mon fichier xml et j'extrais les données qui m'interresses. voici une partie de mon programme VBA que j'appelle dans le macro principal et une la partie xml oû je dois recupérer les données.

je veux si "TestReportOrder =157" , je recupére les valeurs des noeuds "Nom", "Act" ,"Assessment". sinon ecrire dans la cellule (18,17) "essec"

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
Sub RSE(xmlDoc As DOMDocument)
Dim oNode As IXMLDOMElement
Dim oElement As IXMLDOMElement
 
Dim cpt3 As Integer
cpt3 = 18
 
ActiveSheet.Cells(18, 13) = "SPWHRSEA"
For Each oNode In xmlDoc.getElementsByTagName("Measurements")
    'pour accéder au noeud "TestReportOrder"
    Set oElement = oNode.getElementsByTagName("TestReportOrder")(0)
      'Pour boucler dans lA balise
        For Each oElement In oNode.ChildNodes
            If oElement.nodeName = "TestReportOrder" And oElement.nodeTypedValue = 157 Then
               If oElement.nodeName = "Nom" Then
                   ActiveSheet.Cells(cpt3, 14) = oElement.nodeTypedValue
               End If
               ActiveSheet.Cells(cpt3, 15) = "A"
               If oElement.nodeName = "Act" Then
                   ActiveSheet.Cells(cpt3, 16) = oElement.nodeTypedValue
               End If
               If oElement.nodeName = "Assessment" Then
                   If oElement.nodeTypedValue = "PASSED" Then
                       ActiveSheet.Cells(cpt3, 17) = "Réussi"
                    else 
                       ActiveSheet.Cells(cpt3, 17) = "essec"
                   End If
               End If
             Else
                 ActiveSheet.Cells(18, 17) = "Essec"
             End If
        Next oElement
        cpt3 = cpt3 + 1
Next oNode
 
End Sub
les données xml à explorer
Code xml : 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
 <Measurements>
    <TestReportID>c44d6746-09fc-4daa-8686-6d9c13062a13</TestReportID>
    <TestReportOrder>155</TestReportOrder>
    <MeasurementNumber>1</MeasurementNumber>
    <ExecutionNumber>1</ExecutionNumber>
    <MeasurementName>Montée</MeasurementName>
    <RampNumber>0</RampNumber>
    <RampedQuantity>IA</RampedQuantity>
    <Trigger>Détec. 0-&gt;1</Trigger>
    <Assessment>NORESULT</Assessment>
  </Measurements>
  <Measurements>
    <TestReportID>c44d6746-09fc-4daa-8686-6d9c13062a13</TestReportID>
    <TestReportOrder>157</TestReportOrder>
    <MeasurementNumber>1</MeasurementNumber>
    <ExecutionNumber>1</ExecutionNumber>
    <MeasurementName>SPWHRSEA</MeasurementName>
    <RampNumber>1</RampNumber>
    <RampedQuantity>IA</RampedQuantity>
    <Trigger>DJ Départ Fermé 1-&gt;0</Trigger>
    <Nom>1.037037</Nom>
    <Act>0.985185</Act>
    <NegativeTolerance>0.155556</NegativeTolerance>
    <PositiveTolerance>0.155556</PositiveTolerance>
    <Deviation>-0.0519</Deviation>
    <Assessment>PASSED</Assessment>
    <Tact>0.129</Tact>
  </Measurements>