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

Personnaliser des séparateurs ("à la XML")

  • Initiateur de la discussion Initiateur de la discussion Bill46
  • 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 !

B

Bill46

Guest
Bonjour,

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.

Avez-vous une solution simple ?
 
Re : Personnaliser des séparateurs ("à la XML")

Bonjour,
Voici un exemple de code
Code:
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

Données résultantes
NOM>MARTIN</NOM><PRENOM>MARTIN</PRENOM><ADRESSE>MARTIN</ADRESSE>
<NOM>RENAUD</NOM><PRENOM>RENAUD</PRENOM><ADRESSE>RENAUD</ADRESSE>
<NOM>MARTIN</NOM><PRENOM>MARTIN</PRENOM><ADRESSE>MARTIN</ADRESSE>
<NOM>MARTIN</NOM><PRENOM>MARTIN</PRENOM><ADRESSE>MARTIN</ADRESSE>
<NOM>RENAUD</NOM><PRENOM>RENAUD</PRENOM><ADRESSE>RENAUD</ADRESSE>
<NOM>MARTIN</NOM><PRENOM>MARTIN</PRENOM><ADRESSE>MARTIN</ADRESSE>
<NOM>MARTIN</NOM><PRENOM>MARTIN</PRENOM><ADRESSE>MARTIN</ADRESSE>
<NOM>RENAUD</NOM><PRENOM>RENAUD</PRENOM><ADRESSE>RENAUD</ADRESSE>
<NOM>MARTIN</NOM><PRENOM>MARTIN</PRENOM><ADRESSE>MARTIN</ADRESSE>
 
Re : Personnaliser des séparateurs ("à la XML")

Merci pour votre réponse !

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 ?

Merci et pardon si je parais ignare.
 
Re : Personnaliser des séparateurs ("à la XML")

Bonjour,

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.

Discussions similaires

S
Réponses
7
Affichages
1 K
G
W
Réponses
20
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…