Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

lool trop bien ton identifiant fallait y penser !!

Merci d etre revenu vers moi c est gentil !

J'ai du changer l extension en xls au lieu de xml pour pouvoir te l'envoyer.

j'ai supprimé quelques petites phrases confidentialités oblige 😀
 

Pièces jointes

Re : Modification fichier xml via vba

Bonsoir,

Pour essai, cela fonctionne ici mais bon .

Changer le chemin de la ligne suivante dans le code ci dessous :

Open "c:\temp\testxml.xml" For Input As #1 ' Ouvre le fichier.
-- -------------------

Si cela est ok , il reste à créer une boucle avec un dir par exemple pour récupérer le nom des fichiers

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
Origine1 = "<H_CUSTOM9>N</H_CUSTOM9>"
Cible1 = "<H_CUSTOM9>O</H_CUSTOM9>"
Origine2 = "<H_CUSTOM10>N</H_CUSTOM10>"
Cible2 = "<H_CUSTOM10>O</H_CUSTOM10>"

Open "c:\temp\testxml_modif.xml" For Output As #2
Open "c:\temp\testxml.xml" For Input As #1    ' Ouvre le fichier.
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.

End Sub
 
Re : Modification fichier xml via vba

Bonjour,

désolé du retard pour la réponse je suis en congés aujourd'hui je n'avais pas regardé..

J'ai essayé de lancer la macro et il copie le contenu du c:\temp\testxml.xml vers le c:\temp\testxml_modif.xml" mais il ne change pas Origine1 = "<H_CUSTOM9>N</H_CUSTOM9>"
Cible1 = "<H_CUSTOM9>O</H_CUSTOM9>"

Est ce que j'ai mal fait quelque chose?


anthooooony
 
Re : Modification fichier xml via vba

Bonsoir,

Voici la macro intégrée dans excel prête à fonctionner
et le fichier xml renommé Txt pour le transport , à copier dans c:\temp en renommant l'extension txt en xml.
 

Pièces jointes

Re : Modification fichier xml via vba

Bonjour ! camarchepas

Merci beaucoup ça marche 😉

Il faut que je trouve une solution pour faire la boucle comme tu m'avais un dit "dir"? faut que je regarde comment faire pk j'ai une 100ene de fichier jour.


J’enlèverai à la main les fichiers "Testxml" et lancerai une macrotte pour modifier le nom du fichier pour qu'il retrouve son nom

Sub test()
Name "C:\Temp\testxml_modif.xml" As "C:\Temp\Testxml.xml"
End Sub


En tt cas c est super gentil de m'avoir aidé !

Anthooooony
 
Re : Modification fichier xml via vba

Bonjour,

Je regarde pour la boucle ce soir ou demain matin avant le chant du coq.
Je pense qu'une boite d'ouverture fichier pour sélectionner le répertoire, puis une boucle sur les fichiers xml et hop c'est dans la poche.

Le renommage peut ce faire en auto également.
 
Re : Modification fichier xml via vba

Bonsoir,

Intégration du choix du dossier à traiter
Intégration de la boucle sur les fichiers xml de ce dossier
Renommage avant traitement des fichiers en old_nom du fichier
Fichier résultant possède le bon nom

Restera après traitement si tout est ok à supprimer les fichiers en old_

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 Chemin As String, Fichier As String
Dim fd As FileDialog

'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>"

'Choix du dossier à traiter
 Set fd = Application.FileDialog(msoFileDialogFolderPicker)
 With fd
    .Title = "Choisir le dossier à traiter"
    If .Show = -1 Then Chemin = .SelectedItems(1)
 End With
 Set fd = Nothing

 'Scrute le dossier à la recherche des fichiers xml
  Fichier = Dir(Chemin & "\*.xml") 'Programme l'équation du dir
  Do
   Name Chemin & "\" & Fichier As Chemin & "\old_" & Fichier
   Open Chemin & "\" & Fichier For Output As #2 ' Ouvre le fichier en écriture
    Open Chemin & "\old_" & Fichier 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.
   Fichier = Dir
  Loop Until Fichier = ""
End Sub
 

Pièces jointes

Re : Modification fichier xml via vba

Salut camarchepas!!

Merci c'est terrible, le choix du répertoire et tout !! et le changement de nom en gardant le nouveau pret à etre utilisé c'est trop bien!
Je vais juste regardé pour mettre le nombre de changement fait par lancement et op tt sera parfait.

Merci encore bonne journée !!
 
Re : Modification fichier xml via vba

Bonjour

Je suis désolé de relancer, j'ai présenté ta macro 😀 qui marche bien lorsque tu choisis un dossier.
Et on m'a dit s'il était possible de spécifier les fichiers à modifier.
J'ai une macro qui récupère tout les fichiers dans un dossier, est ce qu'il est possible de traiter avec le résultat de ma macro?

Anthooooony



 
Re : Modification fichier xml via vba

Antony,

Peux-tu juste me fournir un modele de la feuil1 contenant les fichiers.

2 ou 3 lignes suffisent maquillées bien sur pour garder la confidentialité.

en fait ce que je cherche à savoir c'est si l'on à le chemin qui mêne au fichier et le fichier dans la même cellule ou séparé.

cordialement
 
Re : Modification fichier xml via vba

Re bonsoir,

Ok pour le format j'ai fais tourner la macro, ça donne ceci :

testxml_modif.xml 23/10/2012
STAT.xls 13/10/2012
liste ndd.txt 10/10/2012


soit colonne A le nom du fichier, et colonne B la date de création de celui-ci .

Par contre, c'est un vrai aspirateur. si des fichiers autre que .xml sont dans le répertoire il les remonte.


Bon et je traite quoi.

juste les fichiers du jours ou l'ensemble des xml?

faut-il continuer à réaliser des fichiers old ou pas ( dans ce cas attention en cas de plantage ou coupure réseau )

La boucle ne sera pas très dure à modifer , par contre , il faut bien déterminer les règles ,

et là la balle est dans ton camps .....
 
Re : Modification fichier xml via vba

Rebonjour,

En faite dans le dossier qui sera choisi, il n'y aura que des fichiers XML pas d'autres formats, il est vrai que le code trouvé aspire tout ce qu'il trouve 😀 mais la c'est un outil qui historise chaque jour des fichiers xml dans un dossier.
C:\Temp\FMFI_1610651.xml voici le résultat que j'ai en colonne A, j'ai un peu modifié le code que j'ai mis précédement. Pour n'avoir QUE la source collé au fichier dans la même cellule.


Juste les fichiers du jours ou l'ensemble des xml? Tous les fichiers du dossier j'ai 200 xml par dossier, il y a que ce format donc ça ira.
Pour les fichier old ce serait parfait de les garder, il détermine vraiment le travail qui a été fait, on se rend compte des fichiers traités.

Merci beaucoup...Encore...
Anthooooony
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…