Microsoft 365 Enregister une feuille Excel sous forme d'un fichier .txt

ilyas_

XLDnaute Nouveau
Bonjour, j'ai une feuille excel avec des cellules qui contiennent des fonctions CONCATENER que je veux enregistrer sous un fichier .txt

Par exemple : =CONCATENER("<?xml version=";CAR(34);"1.0";CAR(34);" encoding=";CAR(34);"UTF-8";CAR(34);"?>")

Mon problème est que sur excel la cellule affiche correctement : <?xml version="1.0" encoding="UTF-8"?>

Par contre sur le fichier .txt ça me donne : <?xml version=""1.0"" encoding=""UTF-8""?>

Y a t-il une solution pour enlever les guillemets en trop sur le fichier .txt
 

MP59

XLDnaute Occasionnel
Bonjour ilyas_,
un rechercher "" remplacer par " ne suffit-il pas?

1610723153345.png

 

cp4

XLDnaute Barbatruc
Bonjour, j'ai une feuille excel avec des cellules qui contiennent des fonctions CONCATENER que je veux enregistrer sous un fichier .txt

Par exemple : =CONCATENER("<?xml version=";CAR(34);"1.0";CAR(34);" encoding=";CAR(34);"UTF-8";CAR(34);"?>")

Mon problème est que sur excel la cellule affiche correctement : <?xml version="1.0" encoding="UTF-8"?>

Par contre sur le fichier .txt ça me donne : <?xml version=""1.0"" encoding=""UTF-8""?>

Y a t-il une solution pour enlever les guillemets en trop sur le fichier .txt
Bonsoir,

Je pense qu'un fichier texte ne peut pas contenir de formule. Il te suffirais peut-être de faire un copier/ collage spécial valeur et ensuite exporter la feuille au format txt.

Bonne soirée.
 

job75

XLDnaute Barbatruc
Une solution qui devrait vous plaire davantage :

- avec le bloc-notes créez un fichier texte .txt vierge

- collez cette macro dans le VBA du fichier Excel et exécutez-la :
VB:
Sub Export_TXT()
Dim fichier, tablo, i&
fichier = Application.GetOpenFilename("Fichier texte, *.txt")
If fichier = False Then Exit Sub
tablo = [A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
'Open fichier For Output As #1 'ceci
Open fichier For Append As #1 'ou cela
For i = 1 To UBound(tablo)
    Print #1, tablo(i, 1)
Next
Close #1
End Sub
Les guillemets ne sont pas doublés.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour ilyas_, le forum,

Il vaut mieux faire créer le fichier Texte par la macro, voyez le fichier joint :
VB:
Sub Export_TXT()
Dim fichier$, tablo, i&
fichier = ThisWorkbook.Path & "\Fichier TXT.txt" 'dossier et nom à modifier éventuellement
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier a déjà été créé
ActiveSheet.Copy 'nouveau document
ActiveWorkbook.SaveAs fichier, xlText 'crée le fichier Texte
ActiveWorkbook.Close 'ferme le document
tablo = [A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
Open fichier For Output As #1 'rouvre le fichier Texte en effaçant son contenu
For i = 1 To UBound(tablo)
    Print #1, tablo(i, 1) 'nouveau contenu
Next
Close #1
End Sub
A+
 

Pièces jointes

  • Export_TXT(1).xlsm
    16.8 KB · Affichages: 13

ilyas_

XLDnaute Nouveau
Bonjour ilyas_, le forum,

Il vaut mieux faire créer le fichier Texte par la macro, voyez le fichier joint :
VB:
Sub Export_TXT()
Dim fichier$, tablo, i&
fichier = ThisWorkbook.Path & "\Fichier TXT.txt" 'dossier et nom à modifier éventuellement
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier a déjà été créé
ActiveSheet.Copy 'nouveau document
ActiveWorkbook.SaveAs fichier, xlText 'crée le fichier Texte
ActiveWorkbook.Close 'ferme le document
tablo = [A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
Open fichier For Output As #1 'rouvre le fichier Texte en effaçant son contenu
For i = 1 To UBound(tablo)
    Print #1, tablo(i, 1) 'nouveau contenu
Next
Close #1
End Sub
A+
Merci pour votre réponse job75, ça fonctionne correctement.
 

ilyas_

XLDnaute Nouveau
bonjour a tous
pourrait on avoir un exemple de fichier
je vois du code xml
donc perso j'ai une autre idée ;)
Bonjour à toi,

C'est pour concaténer une entête XML avec le corps et pour ça j'utilise excel pour récupérer des données, et après j'extrais le résultat de la concaténation sur un fichier .txt

Voici un exemple.
 

Pièces jointes

  • Générateur XML.xlsm
    324.4 KB · Affichages: 6

patricktoulon

XLDnaute Barbatruc
bonjour
j'avoue ne pas comprendre ta démarche un xml il y a des outils en vb(a) pour ca
et je pige pas non plus pourquoi @job75 réécrit 2 fois le fichier

donc si je suis l'idée de job(tout du moins le résultat
VB:
Option Explicit

Sub Export_TXT()
Dim fichier$, tablo
fichier = ThisWorkbook.Path & "\Fichier TXT.txt" 'dossier et nom à modifier éventuellement
tablo = Application.Transpose([A1].CurrentRegion.Resize(, 1)) 'matrice, plus rapide, au moins 2 éléments
Open fichier For Output As #1 'ouvre le fichier Texte
    Print #1, Join(tablo, vbCrLf) 'nouveau contenu
Close #1
End Sub
j'obtiens le même résultat
je regarde d'un peu plus près ton fichier et reviens
 

patricktoulon

XLDnaute Barbatruc
re
j'avoue ne pas saisir ce que tu veux faire ni avec quelle feuille d'ailleurs
c'est brouillon tout ca
si tu me donnais un fichier xml final correspondant au données de ton fichier en post #10 je pourrais comprendre ça serait mieux je pense
un fichier xml doit avoir une structure de base bien précise

<?instruction...?>
<root>
<element>
</element>
</root>
 

ilyas_

XLDnaute Nouveau
re
j'avoue ne pas saisir ce que tu veux faire ni avec quelle feuille d'ailleurs
c'est brouillon tout ca
si tu me donnais un fichier xml final correspondant au données de ton fichier en post #10 je pourrais comprendre ça serait mieux je pense
un fichier xml doit avoir une structure de base bien précise

<?instruction...?>
<root>
<element>
</element>
</root>
j'essaye d'arriver à un fichier similaire à celui là, c'est mon premier contact avec XML donc j'avoue ne pas être à 100%
 

Pièces jointes

  • Nouveau document texte.txt
    1.8 KB · Affichages: 6

patricktoulon

XLDnaute Barbatruc
re
j'avais compris en voyant les 2 exemples dans dans la feuille Générateur xml
mais il ne sont pas bons car il y a des balises qui ne sont pas fermés ou pas ouverte avec une fermeture LOL!!!!!
exemple ici
<OrgId>
<Othr>
<Id>_</Id> ici c'est bon ouvert et fermé
<SchmeNm>
<Prtry>_</Prtry>
</SchmeNm>
</Othr>
</OrgId>
</Id> !!!!!!!!donc !!!!cette fin de balise n'a pas d'ouverture ca fout en l'air ton xml
</Dbtr>
<DbtrAcct>
et il y en a d'autre erreur encore
je pense pas que concaténer en formule soit la meilleur solution trop compliqué à déboguer
en vba on peut construire une architecture xml dans un xmldomdocument en memoire
et il y a la fonction save
sans oublier en UTF-8 certains caractères doivent être convertis sinon la aussi ca fout en l'air le xml
 

ilyas_

XLDnaute Nouveau
re
j'avais compris en voyant les 2 exemples dans dans la feuille Générateur xml
mais il ne sont pas bons car il y a des balises qui ne sont pas fermés ou pas ouverte avec une fermeture LOL!!!!!
exemple ici

et il y en a d'autre erreur encore
je pense pas que concaténer en formule soit la meilleur solution trop compliqué à déboguer
en vba on peut construire une architecture xml dans un xmldomdocument en memoire
et il y a la fonction save
sans oublier en UTF-8 certains caractères doivent être convertis sinon la aussi ca fout en l'air le xml
si tu remonte d'une ligne tu vas trouvé la balise ouvrante.
<Nm>CLIENT A DEBITER</Nm>
<Id>
<OrgId>
<Othr>
<Id>_</Id>
<SchmeNm>
<Prtry>_</Prtry>
</SchmeNm>
</Othr>
</OrgId>
</Id>
j'avoue ne pas avoir une formation en vba donc je ne sais pas travaillé avec mais si tu as une solution en vba je suis preneur.
Voici le resultat final de la concaténation.
 

Pièces jointes

  • Nouveau document texte.txt
    1.9 KB · Affichages: 1

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 184
Messages
2 086 008
Membres
103 088
dernier inscrit
Psodam