creer un fichier txt par lignes d'un fichier excel

thetux07

XLDnaute Nouveau
Bonjour a tous,
Je m'explique :) :

j'ai une extraction excel qui comporte 1 colonne et un peu pres 100 lignes :

ligne 1
ligne 2
ligne 3
.......

et je voudrai créer un fichier texte pour chaque lignes :

ligne 1.txt, ligne 2.txt, ligne 3.txt

je ne sais pas si j'ai été tres claire :s
merci d'avance !!:D
 

i2a

XLDnaute Nouveau
Re : creer un fichier txt par lignes d'un fichier excel

Bonjour thetux07,

Il faudra passer par une macro.
Je t'invite à créer un module et à y insérer ceci :

Code:
Sub creer()
    chemin = "D:\" 'Destination des fichiers .txt
    i = 2 'Ligne de début de la création de fichier .txt
    While (Cells(i, 1) <> "") 'On commence par bouclé tant qu'il existe une ligne comportant des données
        Open chemin & Cells(i, 1) & ".txt" For Output As #1 'On créer un fichier txt
        Close 'on le ferme proprement
        i = i + 1 'on passe a la ligne suivante
    Wend
End Sub

Bien cordialement,
i2a :)
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Bonjour Thetux07

Bienvenu sur ce forum
avant toute chose, ta demande est claire: tu veux récuperer un nom de fichier (Ligne1 ligne2...) dans une colonne
et créer des fichiers texte avec ces noms..

avec un fichier exemple de ton besoin, ca nous permettrait de faire une proposition qui correspond directement à ton besoin

par exemple ici

Code:
Sub Macro1()
'
' Macro1 Macro
'
' récupère le nom du fichier dans la cellule A2
    
    NomFichier = Range("A2")
'donne le chemin du répertoire de sauvegarde
    Chemin = "C:\"
    CheminComplet = Chemin & NomFichier & ".txt"
    'sauvegarde au format .txt du fichier
    ActiveWorkbook.SaveAs Filename:=CheminComplet, FileFormat:=xlText, CreateBackup:=False
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Bonjour à tous

Une autre macro possible
(Merci à AlphaFrog pour son code que j'ai à peine remanié)
Code:
Sub Cells2Txt()
Dim cell As Range, FF&, Counter&
For Each cell In Range("A1", Range("A" & Rows.Count).End(xlUp))
    If Len(cell) > 0 Then
        FF = FreeFile()
        Open ThisWorkbook.Path & "\" & Range("A" & cell.Row).Value & ".txt" For Output As #FF
        Print #FF, cell.Text
        Close #FF
        Counter = Counter + 1
    End If
Next cell
MsgBox Counter & " fichiers créés. ", , "Fin de traitement"
End Sub
 
Dernière édition:

thetux07

XLDnaute Nouveau
Re : creer un fichier txt par lignes d'un fichier excel

impeccable, la deuxieme macro est celle qu'il me faut merci !
au cas où :) peut t'on remplir ces fichiers nouvellement crées par un texte prédéfini ?
Apres j'arretes de vous embêtez :)
Merci beaucoup en tout cas :)
 

i2a

XLDnaute Nouveau
Re : creer un fichier txt par lignes d'un fichier excel

Avec mon morceau de code oui c'est faisable assez facilement :

Code:
Sub creer()
    chemin = "D:\" 'Destination des fichiers .txt
    i = 2 'Ligne de début de la création de fichier .txt
    While (Cells(i, 1) <> "") 'On commence par bouclé tant qu'il existe une ligne comportant des données
        Open chemin & Cells(i, 1) & ".txt" For Output As #1 'On créer un fichier txt
        Print "Mon Texte contenu", chemin & Cells(i, 1) & ".txt" 
        Close 'on le ferme proprement
        i = i + 1 'on passe a la ligne suivante
    Wend
End Sub

Avec la ligne :
Code:
Print "Mon Texte contenu", chemin & Cells(i, 1) & ".txt"
 

Staple1600

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Bonjour à tous

impeccable, la deuxieme macro est celle qu'il me faut merci !
au cas où :) peut t'on remplir ces fichiers nouvellement crées par un texte prédéfini ?

1) Au cas où quoi ?

2) Remplir par un texte prédéfini ?
Dans ce cas doit-on comprendre que que le contenu des cellules ne servira qu'à nommer les fichiers, et que la valeur contenue dans chaque fichier texte ne sera que celle du texte prédéfini ?
 

Staple1600

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Re


thetuxO7
Je suppose que ton dernier message répondait à celui de i2a, non ?
Si oui, peux-tu répondre aux questions de mon précédent message, stp ?
Si non, ta réponse ne m'éclaire pas vraiment.
 

thetux07

XLDnaute Nouveau
Re : creer un fichier txt par lignes d'un fichier excel

C'était pour vous 2 :
1) Au cas où quoi ?

Au cas où c'est faisable

2) Remplir par un texte prédéfini ?
Dans ce cas doit-on comprendre que que le contenu des cellules ne servira qu'à nommer les fichiers, et que la valeur contenue dans chaque fichier texte ne sera que celle du texte prédéfini ?

c'est tout à fait ça :)

mais du coup la réponse d'i2a est parfaite merci encore :) !!
 

kiki29

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Salut, voir l'aide en ligne
extrait :
Open, instruction
Permet d'exécuter une opération d'Entrée/Sortie (E/S) sur un fichier.

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]

La syntaxe de l'instruction Open comprend les éléments suivants :

Élément Description
pathname Expression de chaîne indiquant un nom de fichier — peut comprendre un nom de répertoire ou de dossier et un nom de lecteur.
mode Mot clé indiquant le mode d'ouverture du fichier : Append, Binary, Input, Output ou Random. S'il n'est pas indiqué, le fichier est ouvert en mode Random.
 

Staple1600

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Re

thetux07

Tout était déjà dans le post, non ?
Il suffit de mixer ce que disait i2a précédemment et ma macro précédente, sans oublier les précisions apportées par kiki29
Code:
Sub Cells2Txt()
Dim cell As Range, FF&, Counter&
For Each cell In Range("A1", Range("A" & Rows.Count).End(xlUp))
    If Len(cell) > 0 Then
        FF = FreeFile()
        Open ThisWorkbook.Path & "\" & Range("A" & cell.Row).Value & ".txt" For Output As #FF
        Print #FF, "Texte prédéfini"
        Close #FF
        Counter = Counter + 1
    End If
Next cell
MsgBox Counter & " fichiers créés. ", , "Fin de traitement"
End Sub

PS
: test OK sur mon PC avec un fichier Excel avec toto1 en A1, toto2 en A2, toto3 en A3
j'obtiens toto1.txt, toto2.txt et toto3.txt.
Chacun de ces fichiers contenant comme seule donnée: Texte prédéfini

C'est bien le résultat que tu souhaites obtenir ?
 
Dernière édition:

thetux07

XLDnaute Nouveau
Re : creer un fichier txt par lignes d'un fichier excel

effectivement ça fonctionne avec du texte merci merci :D
Maintenant est il possible qu'a la place du texte, jepuisse inserer du code code vb ?
admet-on que dans tous mes fichiers je veux avoir ça :

Set objNetwork = CreateObject("WScript.Network")
' Imprimantes à connecter
objNetwork.AddWindowsPrinterConnection ""
'Imprimante par défaut si définie
objNetwork.SetdefaultPrinter ""

Est ce possible ou du vb dans du vb ça ne colle pas ?!
merci en tout cas ça m’enlève déjà une bonne épine du pied !!
 

Staple1600

XLDnaute Barbatruc
Re : creer un fichier txt par lignes d'un fichier excel

Bonjour à tous


thetux07
Dans un premier temps, il serait utile que tu précises exactement ce que tu souhaites faire, non ?

*S'il s'agit d'insérer des lignes de code VBA dans N classeurs, on est parti sur la mauvaise voie.

Donc merci d'être précis et détaillé dans ce que tu souhaites faire.

NB: *: Tu trouveras dans les archives du forum, de nombreux fils qui traitent de l'importation de code VBA dans le projet VBA de plusieurs classeurs par le biais de macros.
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
559

Statistiques des forums

Discussions
312 636
Messages
2 090 379
Membres
104 513
dernier inscrit
yahya