Microsoft 365 Comment enregistrer chaque ligne en tant que fichier texte dans Excel?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

floflo12

XLDnaute Nouveau
Bonjour tous le monde?

Voilà une question « simple » je pense mais j’avoue que je bloque…Comment enregistrer chaque ligne en tant que fichier texte dans Excel?
Voilà l’exemple type sur Excel:

A B C E. F. G. H. I.
1 1 FR ds grec 94 thé vente. Ok
2 2. FR. Me ita. 62 thé vente Ok
3 3. FR. Ds. Grec 66 thé vente ok

Je veux un export automatique de mes 27000 lignes en texte ou csv (le plus simple) répartis comme ceci:

1.txt ( le fichier texte contient Fr,ds,grec,94…)

J’essaie de vous faire par de mon fichier dans la semaine..! Un grand merci encore pour votre temps et votre énergie!! 🙏🙏
 
Solution
Bonjour floflo12, ChTi160, le forum,
Ah oui c’est chaud! Mais on peut le tenter non?
Ben oui, voyez le fichier zippé joint et cette macro :
VB:
Sub FichiersCSV()
Dim t, chemin$, i%, fichier$, x%
t = Timer
chemin = ThisWorkbook.Path & "\Fichiers CSV\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin
With [A1].CurrentRegion
    For i = 1 To .Rows.Count
        fichier = chemin & Format(i, "00000") & ".csv"
        x = FreeFile
        Open fichier For Output As #x 'ouverture en écriture séquentielle
        Print #x, Join(Application.Transpose(Application.Transpose(.Rows(i))), ";")
        Close #x
    Next
End With
MsgBox Format(i - 1, "#,##0") & " fichiers CSV créés en " & Format(Timer - t, "0.00 \s")
End Sub
Chez moi les...
Bonjour Job75!
Ah oui c’est chaud! Mais on peut le tenter non? Je sais pas combien de fichier texte peut on mettre dans un dossier..? Sans parler de l’automatisation de l’export qui doit à minima prendre 2 jours facile…
Non peut etre tu as raison je dois faire autrement…
Je vais reflechir pour faire differement. ;-)
 
Bonjour floflo12, ChTi160, le forum,
Ah oui c’est chaud! Mais on peut le tenter non?
Ben oui, voyez le fichier zippé joint et cette macro :
VB:
Sub FichiersCSV()
Dim t, chemin$, i%, fichier$, x%
t = Timer
chemin = ThisWorkbook.Path & "\Fichiers CSV\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin
With [A1].CurrentRegion
    For i = 1 To .Rows.Count
        fichier = chemin & Format(i, "00000") & ".csv"
        x = FreeFile
        Open fichier For Output As #x 'ouverture en écriture séquentielle
        Print #x, Join(Application.Transpose(Application.Transpose(.Rows(i))), ";")
        Close #x
    Next
End With
MsgBox Format(i - 1, "#,##0") & " fichiers CSV créés en " & Format(Timer - t, "0.00 \s")
End Sub
Chez moi les 27 000 fichiers CSV sont créés en 4,7 secondes seulement !

A+
 

Pièces jointes

Bonjour floflo12, ChTi160, le forum,

Ben oui, voyez le fichier zippé joint et cette macro :
VB:
Sub FichiersCSV()
Dim t, chemin$, i%, fichier$, x%
t = Timer
chemin = ThisWorkbook.Path & "\Fichiers CSV\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin
With [A1].CurrentRegion
    For i = 1 To .Rows.Count
        fichier = chemin & Format(i, "00000") & ".csv"
        x = FreeFile
        Open fichier For Output As #x 'ouverture en écriture séquentielle
        Print #x, Join(Application.Transpose(Application.Transpose(.Rows(i))), ";")
        Close #x
    Next
End With
MsgBox Format(i - 1, "#,##0") & " fichiers CSV créés en " & Format(Timer - t, "0.00 \s")
End Sub
Chez moi les 27 000 fichiers CSV sont créés en 4,7 secondes seulement !

A+
Mais non?! 27000 fichier texte qui sont nommé respectivement de 1 à 27000 avec 1 ligne par fichier..! Moins de 5 secondes?!
J’y crois pas!? La c’est impossible.!
 
Bonjour floflo12
C'est quoi la finalité de la chose?
Pour t'aider à répondre : Et si le fichier d'origine change, on recommence, que fait-on de la deuxième série des 27.000 fichiers? Une série par répertoire portant la date, ...? Comment on compare les séries de fichiers?
 
Bonjour floflo12
C'est quoi la finalité de la chose?
Pour t'aider à répondre : Et si le fichier d'origine change, on recommence, que fait-on de la deuxième série des 27.000 fichiers? Une série par répertoire portant la date, ...? Comment on compare les séries de fichiers?
ah non une fois suffit! On recommence pas tout… le fichier d’origine ne bougera plus sinon je m’en sors pas… les fichiers sont numéroté de 1 à 27000 donc juste un contrôle F et je peux réutiliser mon fichier sans refaire un export..
 
Un controle F : c'est pour rechercher une chaine? : possible dans Notepad++
Sinon en scripting, ou en ligne de commande sur Windows, LINUX (grep), ...
sinon FINDSTR (find string du MSDOS) permet d'afficher les numéros de lignes où se trouvent une chaine.
idem facile avec POWERSHELL
$search="chaine"
$linenumber= Get-Content thing.txt | select-string $search
$linenumber.LineNumber
idem en vbscript : autre possibilité pour retourner les lignes où se trouvent une chaine, et possibilité de rechercher dans une colonne particulière ... à faire si besoin
 
Bonjour floflo12, ChTi160, le forum,

Ben oui, voyez le fichier zippé joint et cette macro :
VB:
Sub FichiersCSV()
Dim t, chemin$, i%, fichier$, x%
t = Timer
chemin = ThisWorkbook.Path & "\Fichiers CSV\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin
With [A1].CurrentRegion
    For i = 1 To .Rows.Count
        fichier = chemin & Format(i, "00000") & ".csv"
        x = FreeFile
        Open fichier For Output As #x 'ouverture en écriture séquentielle
        Print #x, Join(Application.Transpose(Application.Transpose(.Rows(i))), ";")
        Close #x
    Next
End With
MsgBox Format(i - 1, "#,##0") & " fichiers CSV créés en " & Format(Timer - t, "0.00 \s")
End Sub
Chez moi les 27 000 fichiers CSV sont créés en 4,7 secondes seulement !

A+
Ouaaaah! T'as une machine de guerre, avec mon I9 10980XE, 96Gb de ram et écriture vers un ramdisk, il me faut quand même 7 secondes.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour