Export sur Fichier.txt avec séparateur

Le
michel.arnoux
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


<michel.arn@gmail.com> a écrit 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éparateurs de champs. Comment dois je procéder ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Papyjac
Le #17275051
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



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 ?





michdenis
Le #17276011
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
'------------------------------------------
michdenis
Le #17276471
texte que tu désires importer

étidemment on devrait lire EXPORTER



"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
'------------------------------------------
Publicité
Poster une réponse
Anonyme