Bonjour à tous,
Dans le cadre d'un projet je dois manipuler un fichier XML avec VBA.
Jusqu'à mainteant j'arrive à l'ouvrir, le parcourir et même le mofier. Mais une fois que je veux le sauvegarder j'ai une erreur qui apparait :
le code que j'utilise est assez simple :
Une fois cliqué sur OK sur le message d'erreur je peux voir le fivhier créé, il existe bien mais n'est pas complet. Il se termine brusquement au millieu d'une ligne :
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 Sub StartEditingXMLFile() Dim stFichier As String Dim xmlDoc As DOMDocument, rootXML As IXMLDOMElement stFichier = Application.GetOpenFilename If stFichier = faux Then Exit Sub Set xmlDoc = New DOMDocument xmlDoc.async = False xmlDoc.Load stFichier Set rootXML = xmlDoc.DocumentElement If Not rootXML Is Nothing Then Set wksEd = ThisWorkbook.Worksheets("Editing") 'On va parcourir la feuille complête pour traiter toutes les dépendances For Each rngDep In wksEd.Range("A2:A" & wksEd.Range("A65536").End(xlUp).Row) 'On commence par aller remplacer la valeur de la dépendance EditDependency rootXML, rngDep.value, rngDep.Offset(0, 3).value 'DEBUG : stop la boucle for pour tester direct la sauvegarde Exit For Next rngDep xmlDoc.Save (Split(stFichier, ".")(0) & "_edited." & Split(stFichier, ".")(1)) End If End Sub
Dans le fichier origninal j'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <Material Name="N91128101" BaseUnitOfMeasure="EA" Configurable="true" MaterialGroup="MC" IncludedByReference="true"> <Properties> <ConfigurationProfiles> <ClassReferences> <LongTexts> <Translations> <Translation LanguageISO="ZH" Text="
J'ai essayer de supprimer ce "Material" et le code a poursuivi pour fianlement planter plus loin à un matérial qui possède le même type de valeur pour son attributs Text à savoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Material Name="N91128101" BaseUnitOfMeasure="EA" Configurable="true" MaterialGroup="MC" IncludedByReference="true"> <Properties> <ConfigurationProfiles> <ClassReferences> <LongTexts> <Translations> <Translation LanguageISO="ZH" Text="红外手操器"/> <Translation LanguageISO="DE" Text="ZUBEHÖR FOR NP1213@"/> <Translation LanguageISO="EN" Text="ACCESSORIES FOR NP1213@"/> </Translations> <BOMs> <CharacteristicDomains> </Material>
J'ai l'impression que le problème viens du format de la donnée. Vous auriez une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part "红外手操器"
Merci d'avance.
Partager