Bonjour,
Je cherche une solutions pour le problème que j'enonce ci-dessous :
Je lance des requetes via SOAP UI et j'ai la possibilité de récupérer des bouts de code XML dans une cellule Excel, exemple :
Le tableau est comme suit :
A B
IdClient1 XML1
IdClient2 XML2
idClient3 XML3
et le XML1 est de cette forme :
Et le tableau final après execution de la macro doit etre sous cette forme ci (dans une nouvelle feuille) :Code:" <PivotContrat> <NumeroContrat>NumContrat1 <NumeroAvenant>Avenant1</NumeroAvenant> <NumeroAvenant>Avenant2</NumeroAvenant> <NumeroAvenant>Avenant3</NumeroAvenant> </NumeroContrat> <NumeroContrat>NumContrat2 <NumeroAvenant>Avenant1</NumeroAvenant> <NumeroContrat>NumContrat3</NumeroContrat> </PivotContrat>"
A B C
IdClient1 Numcontrat1 Avenant1
IdClient1 Numcontrat1 Avenant2
IdClient1 Numcontrat1 Avenant3
IdClient1 Numcontrat2 Avenant1
IdClient1 Numcontrat3
IdClient2 Numcontrat1 Avenant1
IdClient3
Une ligne représente un cas avec un Id Client, un contrat, un avenant au contrat
L'id Client est toujours renseigné dans le dernier tableau, mais il peut ne pas y avoir de contrat dans ce cas le champs contrat est vide ou pas d'avenant dans ce cas le champs avenant est vide.
Je récupère l premier tableau à partir d'une automatisation de test SOAP UI.
J'ai pu ave cun code reussi rà fair ele tableau final partir d'un fichier, mais je ne peux pas génré un fihcie rpour chaque client il y aurait au moins 200 cas de test, je ne peux pas créer 200 fichiers d'où le fait que l'on récupère le bout d'XML qui interesse dans une cellule excel.
J'essai donc d'adapter mon code de lecture et récupération d'info dans un fichier xml pour le xml dans une cellule mais je ne sais pas pourquoi ca coince, ci-dessous le code :
Pour le moment je veux juste récupérer les Numero de contrat d'un client à partir d'une celluleCode:Sub Lire() 'Initialisation du parseur Set xmlDoc = CreateObject("Microsoft.XMLDOM") 'Ouverture du fichier xml xmlDoc.Async = "false" xmlDoc.Load ("WS\Projets\CCEV3\ReponseCCEV3") 'Declaration d'un compteur de Numero de compte Dim i As Integer i = 2 'On récupère tous les noeuds PivotContrat dans le xml For Each PivotContratElement In xmlDoc.SelectNodes("soapenv:Envelope/soapenv:Body/ser-root:getDataResponse/PivotContrat") 'On recupere les NumContrat NumeroContrat = PivotContratElement.SelectSingleNode("NumeroContrat").Text Cells(i, 7) = NumeroContrat 'Ecris le numéros de contrat sur la colonne G 'MsgBox "NumeroContrat : " & NumeroContrat, vbOKOnly + vbInformation, "Test" i = i + 1 Next 'Destruction du parseur Set xmlDoc = Nothing End Sub
Ce qui se passe c'est qu'il n'entre pas dans la boucle "For Each", il ne retourne aucune erreur.
Quand je copie/colle le xml qui est ans excel dans notepad je me rend compte que excell met des " et je pense que 'est ce qui l'empêche de voi que c'est du xml.
Quand je copie ce qui vient de excel dans notepad que j'enleve les "" et enregistre el fichier le code arrive à lire l efichier, mais quand j'essaie d'enlever les " dans excel, excel me dit qu'il n'y a pas de guillement et je ne sais pas comment faire.
Les " se trouve au début et à la fin du XML comme suit :
"XML"
Merci our votre aide je suis preneuse de solutions.
Bien cordialement.
-----