Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Diviser un fichier en fichier de 1000 lignes avec un nom différent

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 !

Pygos691

XLDnaute Nouveau
Bonjour,

J'ai un fichier au format csv (excel avec point virgule), qui contient 780000 lignes que je désire diviser en fichiers de 1000 lignes chacun....

Chaque fichier devra garder le même titre de colonnes et le même format "Texte" - colonne A.

Ci-joint un fichier de 3000 lignes...


Merci d'avance,
 

Pièces jointes

Re : Diviser un fichier en fichier de 1000 lignes avec un nom différent

Quelques secondes pour créer mes 780 fichiers, c'est l'objectif de ma demande ! Encore merci !😀

Je n'ai plus qu'à les mettre en traitement sur mes différents écrans !
 
Re : Diviser un fichier en fichier de 1000 lignes avec un nom différent

Bonjour à tous

Pour ce genre de problème, on peut très facilement utiliser OPEN avec un line Input et Print #1 par exemple comme quand on écrit un fichier texte en basic classique (ex: Gwbasic).

exemple issu de l'aide:

Code:
Le code suivant ouvre le fichier FICHTEST en mode de lecture séquentielle.

Open "FICHTEST" For Input As #1
' Ferme le fichier avant de l'ouvrir à nouveau dans un autre mode.
Close #1
 
Re : Diviser un fichier en fichier de 1000 lignes avec un nom différent

Bonjour Roland

Désolé, mais hier, je n'ai pas vu ton fichier que j'ai testé ce matin et qui fonctionne très bien 🙂.

Sinon voici , un code que j'ai fait ce matin, le sujet m'intéressant.

Code:
Sub Dispatche_Fichier_CSV_En_N_Fichiers()
Close
'Mettre ce fichier et le fichier .Csv dans le même dossier

'Possibilité de mettre un Inputbox en copiant collant de l'explorateur le nom du fichier (F2)
NomFich = "ARR3000" ' Inputbox("Nom du fichier (sans le .csv)?")

'Nombre de lignes pour la découpe
NombreLigneCoupe = 1000

N = 1 'Compteur Fichier N
Open ThisWorkbook.Path & "\" & NomFich & ".csv" For Input As #1

i = 0 'Compteur ligne

Open ThisWorkbook.Path & "\" & NomFich & "N" & N & ".csv" For Output As #2
'Recherche Entête
 Line Input #1, a$
 Entête = a$
 Print #2, Entête
 
Do While Not (EOF(1))
 i = i + 1
 Line Input #1, a$
 'MsgBox a$
 Print #2, a$
 If i = NombreLigneCoupe Then Close #2: i = 0: N = N + 1: Open ThisWorkbook.Path & "\" & NomFich & "N" & N & ".csv" For Output As #2: Print #2, Entête
Loop

'Ferme tous les fichiers textes
Close

'si il y a un nombre d'enregistrement de  3000 (ou 2000, 4000 ...), on doit supprimer
'le dernier fichier qui n'aura que l'Entête dans le fichier
If i = 0 Then Kill ThisWorkbook.Path & "\" & NomFich & "N" & N & ".csv"
End Sub
 

Pièces jointes

- 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

Discussions similaires

Réponses
11
Affichages
434
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…