Excel et traduction Xml

  • Initiateur de la discussion Initiateur de la discussion Amaechi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Amaechi

Guest
Bonjour,

Je souhaite créer un fichier excel a partir d'un fichier Xml de maniere automatisée ( passant par du VBA en gros). Je suis a la recherche d'information sur ce processus n'etant pas un expert de VBA, sachant que le fichier Xml est conséquent et qu'il faudra tenir compte de la présence ou non de balise dans le XML pour certains champs.

Merci beaucoup pour tous vos éclaircissements,


Amaechi
 
Re : Excel et traduction Xml

Oui je me suis déja bien penché sur le fichier XML. il contient en moyenne 10 000 lignes donc ca a été un peu comlpiqué au début, mais j'ai identifié tous les champs dont j'ai besoin (certian nécessite un calcul en fonction de dates et de taux avant de les afficher 😱 ).
 
Re : Excel et traduction Xml

en fait j'arrive tres bien a ouvrir mon fichier Xml dans Excel. C e que je souhaiterais serait d'automatiser cette opération en pouvant en plus afficher sous forme de tableau seulement les informations qui m'interresse dans le fichier XML.

Je pose la question car Mister google est a court d'argument sur le sujet 😉
 
Re : Excel et traduction Xml

Ok mais sans fichier, cela va être dur de t'aider. Le mieux est de mettre un bout de ton fichier sans données confidentielles avec ce que tu veux obtenir (bien expliquer pour éviter les confusions).

A partir de la, si des personnes savent le gérer, ce sera plus facile pour éviter de parler dans le vide!



Tiens! où est passé Bruno!
 
Re : Excel et traduction Xml

Voila un bout de code que j'ai a traiter

<Task
UID="AJ!&apos;,0`4E^```J:+X5!$!```?P```0" earlyStart="2007-02-05T08:00:00" baseTime="2007-02-20T09:54:28"
lateStart="2007-02-04T00:00:00" start="2007-02-04T00:00:00" proxy="false" earlyFinish="2007-02-23T17:00:00"
lateFinish="2007-03-20T17:00:00" critical="false" status="1" outlineLevel="4" baseFinish="2007-02-23T17:00:00"
finish="2007-02-23T17:00:00" summary="false" baseStart="2007-02-04T00:00:00" baselineDuration="15.0"
milestone="false" name="tache 1.1" fixed="true" locked="false" key="false" percComp="0.0"
totalSlack="17.0" unplanned="false">
<Assignments>
<Assignment
status="1" resourceID="Ressource 1" start="2007-02-05T08:00:00" unplanned="false"
estPattern="3" actualThrough="2007-02-14T17:00:00" finish="2007-02-23T17:00:00" estMax="1.0">
<Curve name="baseLine" type="2" default="0.0">
<Segments>
<Segment start="2007-02-05T08:00:00" finish="2007-02-14T17:00:00" rate="1.0"/>
<Segment start="2007-02-15T08:00:00" finish="2007-02-15T17:00:00" rate="2.0"/>
<Segment start="2007-02-15T17:00:00" finish="2007-02-23T17:00:00" rate="1.0"/>
</Segments>
</Curve>
<Curve name="actuals" type="2" default="0.0">
<Segments>
<Segment start="2007-02-05T08:00:00" finish="2007-02-14T17:00:00" rate="1.0"/>
</Segments>
</Curve>
<Curve name="estimates" type="2" default="0.0">
<Segments>
<Segment start="2007-02-21T08:00:00" finish="2007-02-22T00:00:00" rate="6.0"/>
<Segment start="2007-02-22T00:00:00" finish="2007-02-23T17:00:00" rate="1.0"/>
</Segments>
</Curve>
<BaselineDetails>
<BaselineDetail
start="2007-02-05T08:00:00" baselineCode="Baseline1" finish="2007-02-23T17:00:00"
duration="15.0">
<Curve name="costCurve" type="2" default="0.0">
<Segments>
<Segment start="2007-02-05T08:00:00" finish="2007-02-14T17:00:00" rate="2.777777777777778E-4"/>
<Segment start="2007-02-15T08:00:00" finish="2007-02-15T17:00:00" rate="5.555555555555556E-4"/>
<Segment start="2007-02-15T17:00:00" finish="2007-02-23T17:00:00" rate="2.777777777777778E-4"/>
</Segments>
</Curve>
<Curve name="usageCurve" type="2" default="0.0">
<Segments>
<Segment start="2007-02-05T08:00:00" finish="2007-02-14T17:00:00" rate="1.0"/>
<Segment start="2007-02-15T08:00:00" finish="2007-02-15T17:00:00" rate="2.0"/>
<Segment start="2007-02-15T17:00:00" finish="2007-02-23T17:00:00" rate="1.0"/>
</Segments>
</Curve>
</BaselineDetail>
</BaselineDetails>
</Assignment>
</Assignments>
<BaselineDetails>
<BaselineDetail
start="2007-02-04T00:00:00" baselineCode="Baseline1" finish="2007-02-23T17:00:00"
duration="15.0">
<Curve name="costCurve" type="2" default="0.0">
<Segments>
<Segment start="2007-02-05T08:00:00" finish="2007-02-14T17:00:00" rate="2.777777777777778E-4"/>
<Segment start="2007-02-15T08:00:00" finish="2007-02-15T17:00:00" rate="5.555555555555556E-4"/>
<Segment start="2007-02-15T17:00:00" finish="2007-02-23T17:00:00" rate="2.777777777777778E-4"/>
</Segments>
</Curve>
<Curve name="usageCurve" type="2" default="0.0">
<Segments>
<Segment start="2007-02-05T08:00:00" finish="2007-02-14T17:00:00" rate="1.0"/>
<Segment start="2007-02-15T08:00:00" finish="2007-02-15T17:00:00" rate="2.0"/>
<Segment start="2007-02-15T17:00:00" finish="2007-02-23T17:00:00" rate="1.0"/>
</Segments>
</Curve>
</BaselineDetail>
</BaselineDetails>
 
Re : Excel et traduction Xml

Bonjour,

En faites dans le principe tu te ballades dans ton XML un peu comme dans une treeview. Il est difficile de te donner une aide complète chaque structure XML etant particulière.

Voici un exemple de ce que j'ai fait pour mon boulot. Le fichier XML sert à créer un menu dynamiquement dans Excel.

1 - Cocher la référence microsoft XML v4.
2- Voici un bout de mon fichier XML

[/quote]

3 - La procédure de lecture d'un fichier XML :
Code:
Public XDoc_Btn As MSXML2.DOMDocument40
Sub Open_And_Read_XML_Btn(ByVal Fichier As String)
Set XDoc_Btn = New MSXML2.DOMDocument40
Dim strErrText As String
Dim xPE As MSXML2.IXMLDOMParseError
'On Error Resume Next
XDoc_Btn.async = False ' False Le parser ne rend pas la main temps que le fichier XML
' n'a pas été lu et interpreté dans sont INTEGRALITE
If XDoc_Btn.Load(Fichier) Then 'Si peut ouvrir fichier XML alors
Else
' Impossible de charger le document, recuperation des erreurs
    Set xPE = XDoc_Btn.parseError
    With xPE
        strErrText = "Your XML Document " & Fichier & " failed to load " & _
        "due the following error." & vbCrLf & _
        "Error #: " & .errorCode & ": " & xPE.reason & _
        "Line #: " & .Line & vbCrLf & _
        "Line Position: " & .linepos & vbCrLf & _
        "Position In File: " & .filepos & vbCrLf & _
        "Source Text: " & .srcText & vbCrLf & _
        "Document URL: " & .url & vbCrLf & _
        "Please Contact M&PS !"
    End With
    MsgBox strErrText, vbExclamation
End If
Set xPE = Nothing
End Sub

4 - Comment utiliser le XML : dans cet exemple lecture des balises "Bouton" et récuperation des informations contenues dans ces balises :
Code:
   Call Open_And_Read_XML_Btn(Chemin_Noyau & Fichier)
 
    If CDate(XDoc_Btn.documentElement.getAttribute("DATE")) >= now Then
        MsgBox "Votre produit est déjà à jour.", vbInformation + vbOKOnly, "Attention..."
        Set XDoc_MAJ = Nothing
        Set XDoc_Btn = Nothing
        Exit Sub
    End If
 
    For Each xUser_MAJ In XDoc_MAJ.getElementsByTagName("BOUTON")
 
        Nom_MAJ = xUser_MAJ.getAttribute("NOM")
        Ver_MAJ = Val(xUser_MAJ.selectSingleNode("VER").nodeTypedValue)
        Etat_MAJ = UCase$(xUser_MAJ.selectSingleNode("ETAT").nodeTypedValue)
        Var_MAJ = xUser_MAJ.selectSingleNode("VARIABLE").nodeTypedValue
        Type_MAJ = xUser_MAJ.selectSingleNode("TYPE").nodeTypedValue
        Att_MAJ = xUser_MAJ.selectSingleNode("ATT").nodeTypedValue
        Boucle = 0

Désolé de n'être pas plus précis mais encore une fois je ne peux te donner que des pistes génériques. Mais le principal est là, il faut faire marcher ta tête pour comprendre la logique.

Globalement pour chaque noeud principal, ici, "bouton" on balaie les valeurs à l'interieur et on fait ce que l'on a à faire, puis, on passe au suivant etc ....

Bon courage

Creepy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
Réponses
20
Affichages
4 K
RaVenSs
R
T
Réponses
8
Affichages
2 K
Tomas82
T
C
Réponses
3
Affichages
2 K
claivier_58
C
C
Réponses
1
Affichages
2 K
claivier_58
C
A
  • Question Question
Réponses
2
Affichages
1 K
antho59li
A
B
Réponses
15
Affichages
8 K
Biasloler
B
K
Réponses
14
Affichages
9 K
D
Réponses
0
Affichages
916
disashy
D
R
Réponses
1
Affichages
2 K
Rplop
R
P
Réponses
2
Affichages
2 K
pierrequimousse
P
Retour