Modification fichier xml via vba

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 !

anthooooony

XLDnaute Occasionnel
Bonjour,

Je souhaite savoir s'il y a possibilité de remplacer des données de fichier XML via vb ou autre

En effet, je dois retraiter une 100ène de fichier par jour pour remplacer deux choses
<H_CUSTOM9>N</H_CUSTOM9> par <H_CUSTOM9>O</H_CUSTOM9>
ET
<H_CUSTOM10>N</H_CUSTOM10> PAR <H_CUSTOM10>O</H_CUSTOM10>

ces fichiers sont reparties en 5 dossiers qui correspondent à 5 régions.

Il y a t-il une solution remplacer ces informations?


Merci beaucoup de votre aide précieuse!

anthooooony
 
Re : Modification fichier xml via vba

Bonjour Anthony,

13 oqp,

Mais voici enfin la modification :

Code:
Sub cc()
Dim Lecture As String
Dim Ecriture As String
Dim Origine1 As String, Origine2 As String
Dim Cible1 As String, Cible2 As String
Dim FichierOld As String, Fichier As String
Dim Tourne As Long

'Init éléments d'origine et remplaçant
 Origine1 = "<H_CUSTOM9>N</H_CUSTOM9>"
 Cible1 = "<H_CUSTOM9>O</H_CUSTOM9>"
 Origine2 = "<H_CUSTOM10>N</H_CUSTOM10>"
 Cible2 = "<H_CUSTOM10>O</H_CUSTOM10>"
  Tourne = 1
  Fichier = ThisWorkbook.Sheets("Feuil1").Range("A1")
  Do
   FichierOld = Replace(Fichier, ".", "_old.")
   Name Fichier As FichierOld
   Open Fichier For Output As #2 ' Ouvre le fichier en écriture
    Open FichierOld For Input As #1    ' Ouvre le fichieren lecture.
     Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
      Line Input #1, Lecture        ' Lit la ligne dans la variable.
      Ecriture = Replace(Replace(Lecture, Origine1, Cible1), Origine2, Cible2)
      Print #2, Ecriture
     Loop
    Close #2
   Close #1    ' Ferme le fichier.
   Tourne = Tourne + 1
   Fichier = ThisWorkbook.Sheets("Feuil1").Range("A" & Tourne)
  Loop Until Fichier = ""
End Sub
 
Re : Modification fichier xml via vba

Bonjour,

Merci beaucoup CAMARCHEPAS !!! Ça marche !! 😉

Petite question : si tu as le temps, peux tu me dire quelle était l'utilité d'avoir un fichier OLD déjà? Merde je viens de voir c'est à cause de moi, tu me l'avais proposé en cas de rupture réseau.
Avec le nouveau code que tu m'as donné on s'est amusé à changer 500 fichiers qui se trouvent dans 40 dossiers du coups ça duplique tous les fichiers dans autant de dossier.
😀 je vais essayer de bidouiller ton code pour enlever la fonction copie de fichier old

Anthooooony
 
Re : Modification fichier xml via vba

Code:
Sub cc()
Dim Lecture As String
Dim Ecriture As String
Dim Origine1 As String, Origine2 As String
Dim Cible1 As String, Cible2 As String
Dim FichierOld As String, Fichier As String
Dim Tourne As Long

'Init éléments d'origine et remplaçant
 Origine1 = "<H_CUSTOM9>N</H_CUSTOM9>"
 Cible1 = "<H_CUSTOM9>O</H_CUSTOM9>"
 Origine2 = "<H_CUSTOM10>N</H_CUSTOM10>"
 Cible2 = "<H_CUSTOM10>O</H_CUSTOM10>"
  Tourne = 1
  Fichier = ThisWorkbook.Sheets("Feuil1").Range("A1")
  Do
   FichierOld = Replace(Fichier, ".", "_old.")
   Name Fichier As FichierOld
   Open Fichier For Output As #2 ' Ouvre le fichier en écriture
    Open FichierOld For Input As #1    ' Ouvre le fichieren lecture.
     Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
      Line Input #1, Lecture        ' Lit la ligne dans la variable.
      Ecriture = Replace(Replace(Lecture, Origine1, Cible1), Origine2, Cible2)
      Print #2, Ecriture
     Loop
    Close #2
   Close #1    ' Ferme le fichier.

'Destruction du fichier old
   kill fichierold


   Tourne = Tourne + 1
   Fichier = ThisWorkbook.Sheets("Feuil1").Range("A" & Tourne)
  Loop Until Fichier = ""
End Sub
 
- 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

Discussions similaires

G
  • Question Question
Réponses
1
Affichages
802
Grouchet
G
Réponses
0
Affichages
1 K
F
Réponses
0
Affichages
859
francoisetcheb
F
K
Réponses
38
Affichages
10 K
kinders59
K
Retour