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 !
Voilà, je souhaiterais exporter une feuille Excel (v. 2003) en texte en utilisant comme séparateurs de champ les noms en en-tête des colonnes pour en faire un traitement derrière, du style :
NOM | PRENOM | ADRESSE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
devient dans le fichier texte exporté :
<NOM>MARTIN</NOM><PRENOM>PAUL</PRENOM><ADRESSE>12 RUE DE LA REPUBLIQUE</ADRESSE>
Ce qui revient à créer un fichier structuré où les balises reprennent les noms des colonnes.
Sub LitDansFichier()
' Fichier de résultat
Open "C:\Excel\Excel Downloads\XML2.txt" For Output As #2
' Fichier de données
Open "C:\Excel\Excel Downloads\XML.txt" For Input As #1
i = 0
Do While Not EOF(1)
Line Input #1, txtLine
i = i + 1
Tbl = Split(txtLine, "|")
If i = 1 Then
Titre1 = Trim(Tbl(0))
Titre2 = Trim(Tbl(1))
Titre3 = Trim(Tbl(2))
Else
Contenu_Ligne = "<" & Titre1 & ">" & Trim(Tbl(0)) & "</" & _
Titre1 & ">" & "<" & titre2 & ">" & Trim(Tbl(0)) & "</" _
& titre2 & ">" & "<" & Titre3 & ">" & Trim(Tbl(0)) & "</" & Titre3 & ">"
Print #2, Contenu_Ligne
End If
Loop
Close #1
Close #2
End Sub
Données sources
NOM | PRENOM | ADRESSE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
RENAUD | Eric | 12 RUE DE LA REPUBLIQUE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
RENAUD | Eric | 12 RUE DE LA REPUBLIQUE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
RENAUD | Eric | 12 RUE DE LA REPUBLIQUE
MARTIN | PAUL | 12 RUE DE LA REPUBLIQUE
Mais comme je suis novice, j'ai besoin de complément d'infos... Qu'est ce que je fais de ce code ? Je le mets où ? Le "|", c'était juste pour simuler un séparateur de colonne sous Excel. Comment exécuter ce script depuis Excel avec ma feuille ouverte à l'écran pour générer directement le fichier texte correctement balisé ? Est-ce qu'on peut en faire une macro et l'afficher comme un bouton dans Excel ?
Sous Excel, il te faut enregistrer ton fichier au format CSV
Ensuite tu ouvres un classeur vierge et tu mets ce code dans un module
en changeant les chemins et noms de fichiers ainsi que le séparateur
de cette ligne Tbl = Split(txtLine, "|")
En général le CSV mets un ";"
Un bouton sur la feuille qui lance ta macro et hop le tour est joué.
Tu cliques
Ouverture du fichier destination
Ouverture et lecture du fichier source avec recopie dans le fichier destination
Fin de macro
Tu as un fichier de destination avec les données sous forme XML
Si tu as un fichier tu me l'envoies
- 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.