macro pour recupérer des données xml sur excel
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:
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:
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->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->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> |