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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ?
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
"michel.arnoux@gmail.com" 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
<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 ?
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 ?
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 '------------------------------------------
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
'------------------------------------------
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
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 '------------------------------------------
texte que tu désires importer
étidemment on devrait lire EXPORTER
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eBr116nGJHA.3548@TK2MSFTNGP05.phx.gbl...
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
'------------------------------------------
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 '------------------------------------------