Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

xls vers txt

4 réponses
Avatar
boblebob
bonjour,
je dois exporter des données xls vers du txt, le séparateur devant être "|"
(celui de la touche 6).
Ex l'export pour les col A à D doit donner :

Nom|Prenom|CP|Ville|

Ce que j'ai fait : Enregistrer en csv (avec séparateur ";") puis dans le
bloc-note remplacer ";" par "|" mais j'ai un prb car j'obtients :
Nom|Prenom|CP|Ville (je n'ai pas le "|" en fin de dernière colonne et j'ai
pas mal de ligne à traiter).

Avez-vous une idée en VBA ou autre ?


merci
a+
bob

4 réponses

Avatar
gerard
On 30 oct, 20:47, "boblebob" <a> wrote:
bonjour,
 je dois exporter des données xls vers du txt, le séparateur devant être "|"
(celui de la touche 6).
Ex l'export pour les col A à D  doit donner :

Nom|Prenom|CP|Ville|

Ce que j'ai fait : Enregistrer en csv (avec séparateur ";") puis dans l e
bloc-note remplacer ";" par "|" mais j'ai un prb car j'obtients :
Nom|Prenom|CP|Ville (je n'ai pas le "|" en fin de dernière colonne et j 'ai
pas mal de ligne à traiter).

Avez-vous une idée en VBA  ou autre ?

merci
a+
bob



Une idée toute simple : ajoute ce caractère en dernière colonne apr ès
"ville" manuellement et duplique-la jusqu'à la dernière ligne de ton
fichier ...
Gérard
Avatar
michdenis
DAns la procédure, tu dois renseigner le chemin et le nom du fichier
texte que tu désires importer :
'Chemin + Nom que tu veux donner à ton fichier texte
(il n'a pas besoin d'exister)
fFilename = "c:Exceltodaydenis.txt"

De plus, dans la procédure, tu dois indiquer le séparateur de
ton fichier texte, ce peut être , "vbTab", une virgule, point-virgule
ou tout autre caractère, le cas échéant :
'Définis le séparateur que tu veux utiliser
Sep = "|"

En dernier lieu, tu dois lui indiquer la plage de cellule que tu veux
copier dans ton fichier texte... pour ce faire tu la définis là dans
la procédure :
C = Range("Feuil2!A1:B10")
Feuil2 est le nom de l'onglet de la feuille où se retrouvent tes cellules

C'est tout. Ça devrait prendre quelques instants et le tour est joué.

'------------------------------------------
Sub SaveAsTextFile()
Dim C As Variant, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String

'Définis le séparateur que tu veux utiliser
Sep = "|"

'Chemin + Nom du fichier selon ton environnement
fFilename = "c:Exceltodaydenis.txt"

Nb = FreeFile
Open fFilename For Output As Nb
'Définir la plage de cellules
C = Range("Feuil2!A1:B10") ' à définir
For a = 1 To UBound(C, 1)
tmP = ""
For b = 1 To UBound(C, 2)
If tmP > "" Then
tmP = tmP & Sep & C(a, b)
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
Erase C
End Sub
'------------------------------------------





"boblebob" <a> a écrit dans le message de news:
%
bonjour,
je dois exporter des données xls vers du txt, le séparateur devant être "|"
(celui de la touche 6).
Ex l'export pour les col A à D doit donner :

Nom|Prenom|CP|Ville|

Ce que j'ai fait : Enregistrer en csv (avec séparateur ";") puis dans le
bloc-note remplacer ";" par "|" mais j'ai un prb car j'obtients :
Nom|Prenom|CP|Ville (je n'ai pas le "|" en fin de dernière colonne et j'ai
pas mal de ligne à traiter).

Avez-vous une idée en VBA ou autre ?


merci
a+
bob
Avatar
boblebob
"gerard" a écrit dans le message de news:

On 30 oct, 20:47, "boblebob" <a> wrote:
bonjour,
je dois exporter des données xls vers du txt, le séparateur devant être
"|"
(celui de la touche 6).
Ex l'export pour les col A à D doit donner :

Nom|Prenom|CP|Ville|

Ce que j'ai fait : Enregistrer en csv (avec séparateur ";") puis dans le
bloc-note remplacer ";" par "|" mais j'ai un prb car j'obtients :
Nom|Prenom|CP|Ville (je n'ai pas le "|" en fin de dernière colonne et j'ai
pas mal de ligne à traiter).

Avez-vous une idée en VBA ou autre ?

merci
a+
bob



Une idée toute simple : ajoute ce caractère en dernière colonne après
"ville" manuellement et duplique-la jusqu'à la dernière ligne de ton
fichier ...
Gérard

ça n'est pas possible l'utilisateur final ne peut pas le faire : suivant le
lignes, les colonnes ne sont pas identiques (parfois cela se termine en D
parfois en G parfois en ...!
Avatar
boblebob
ok je teste demain
a+
"michdenis" a écrit dans le message de news:

DAns la procédure, tu dois renseigner le chemin et le nom du fichier
texte que tu désires importer :
'Chemin + Nom que tu veux donner à ton fichier texte
(il n'a pas besoin d'exister)
fFilename = "c:Exceltodaydenis.txt"

De plus, dans la procédure, tu dois indiquer le séparateur de
ton fichier texte, ce peut être , "vbTab", une virgule, point-virgule
ou tout autre caractère, le cas échéant :
'Définis le séparateur que tu veux utiliser
Sep = "|"

En dernier lieu, tu dois lui indiquer la plage de cellule que tu veux
copier dans ton fichier texte... pour ce faire tu la définis là dans
la procédure :
C = Range("Feuil2!A1:B10")
Feuil2 est le nom de l'onglet de la feuille où se retrouvent tes cellules

C'est tout. Ça devrait prendre quelques instants et le tour est joué.

'------------------------------------------
Sub SaveAsTextFile()
Dim C As Variant, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String

'Définis le séparateur que tu veux utiliser
Sep = "|"

'Chemin + Nom du fichier selon ton environnement
fFilename = "c:Exceltodaydenis.txt"

Nb = FreeFile
Open fFilename For Output As Nb
'Définir la plage de cellules
C = Range("Feuil2!A1:B10") ' à définir
For a = 1 To UBound(C, 1)
tmP = ""
For b = 1 To UBound(C, 2)
If tmP > "" Then
tmP = tmP & Sep & C(a, b)
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
Erase C
End Sub
'------------------------------------------





"boblebob" <a> a écrit dans le message de news:
%
bonjour,
je dois exporter des données xls vers du txt, le séparateur devant être
"|"
(celui de la touche 6).
Ex l'export pour les col A à D doit donner :

Nom|Prenom|CP|Ville|

Ce que j'ai fait : Enregistrer en csv (avec séparateur ";") puis dans le
bloc-note remplacer ";" par "|" mais j'ai un prb car j'obtients :
Nom|Prenom|CP|Ville (je n'ai pas le "|" en fin de dernière colonne et j'ai
pas mal de ligne à traiter).

Avez-vous une idée en VBA ou autre ?


merci
a+
bob