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

Export sur Fichier.txt avec séparateur

3 réponses
Avatar
michel.arnoux
Merci beaucoup =E0 Denis ...
mais je n'arrive pas =E0 mettre en oeuvre

Il faut sans doute (?)
-ouvrir Excel
-appeler le fichier Excel =E0 traiter
-appeler l'=E9diteur Macro et y placer la s=E9quence proposer
-faire run
-...

Merci encore pour un coup de pouce suppl=E9mentaire
Michel


s=E9quence re=E7ue :
--------------------
Sub SaveAsTextFile2()
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=E9finis le s=E9parateur que tu veux utiliser
Sep =3D Chr(44) ' -> ","


'Chemin + Nom du fichier selon ton environnement
fFilename =3D "c:\Excel\today\denis.txt"


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


Close #Nb
Erase C
End Sub


<michel.arn...@gmail.com> a =E9crit dans le message de news:
17e3f189-4848-4d45-aada-9ec44e0fe...@e53g2000hsa.googlegroups.com...
Bonjour,
Je m'excuse de poser une question assez basique.
Je suis sous Excel, je veux sortir un fichier.txt avec des ";" comme
s=E9parateurs de champs. Comment dois je proc=E9der ?

3 réponses

Avatar
Papyjac
Bonjour Michel.arnoux

Si tu ne maitrise pas le VB, laisse tomber la solution
Si tu veux vraiment le faire en VB, tu fais ce que tu proposes effectivement
de coller le code dans un module et ensuite tu exécutes en pas à pas pour
bien comprendre ce qu'il fait, ainsi tu sera à même de modifier en cas de
besoin

Sinon, tu effectues d'abord manuellement, avec l'enregistreur de macro, un
enregistrer sous ; type de fichier CSV

--
Papyjac


"" a écrit :

Merci beaucoup à Denis ...
mais je n'arrive pas à mettre en oeuvre

Il faut sans doute (?)
-ouvrir Excel
-appeler le fichier Excel à traiter
-appeler l'éditeur Macro et y placer la séquence proposer
-faire run
-...

Merci encore pour un coup de pouce supplémentaire
Michel


séquence reçue :
--------------------
Sub SaveAsTextFile2()
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 = Chr(44) ' -> ","


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


a écrit dans le message de news:

Bonjour,
Je m'excuse de poser une question assez basique.
Je suis sous Excel, je veux sortir un fichier.txt avec des ";" comme
séparateurs de champs. Comment dois je procéder ?





Avatar
michdenis
Comme tu dis,
A ) tu ouvres Excel d'abord
B ) tu ouvres l'éditeur de code (vbe) raccourci clavier : Alt + F11
C ) à partir du menu de ladite fenêtre (vbe) tu insères un module
Menu / Insertion / module
D ) dans la page blanche, tu fais un copier-coller de la procédure

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 SaveAsTextFile2()
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
'------------------------------------------
Avatar
michdenis
texte que tu désires importer

étidemment on devrait lire EXPORTER



"michdenis" a écrit dans le message de news:

Comme tu dis,
A ) tu ouvres Excel d'abord
B ) tu ouvres l'éditeur de code (vbe) raccourci clavier : Alt + F11
C ) à partir du menu de ladite fenêtre (vbe) tu insères un module
Menu / Insertion / module
D ) dans la page blanche, tu fais un copier-coller de la procédure

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 SaveAsTextFile2()
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
'------------------------------------------