Scinder 1 fichier au format csv en plusieurs fichiers csv
RésoluPYGOS69 Messages postés 452 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite scinder 1 fichier de plusieurs lignes (30 000 par exemple) en plusieurs fichiers de 300 lignes + ou - .
(fichier au format csv)
En vba, si possible : (un exemple de ce que je souhaite)
sélectionner le fichier à découper svp.
Combien de lignes par fichier souhaitez-vous ?
Une fois la réponse apportée aux 2 questions, la découpe doit se faire en gardant le format dans chaque colonne (exemple colonne A = format Texte).....
La 1ère ligne (en tête de colonne) sera la même pour tous les fichiers.
Merci d'avance pour votre aide ! Je n'ai pas trouvé de solution sur le net.....
Cdlt
Windows / Firefox 91.0
- Découper un fichier csv volumineux
- Comment réduire un fichier trop volumineux - Guide
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
6 réponses
Bonjour,
Donc chaque découpes est enregistrer comme nouveu fichier cvs.... Oui / Non?
Merci de fournir au moins 5 à 10 lignes du fichier à scinder!
Pour joindre le fichier via https://www.cjoint.com/
suivre les instructions et coller le lien sur nouveau poste.
Bonjour,
7zip permet de diviser un fichier, sur 7zip, sur la liste des fichiers, clic-droit diviser en, suivant la taille, je ne sais pas si il respecte les sauts de ligne.
Ou un petit batch ligne de commande : https://www.developpez.net/forums/d1502877/general-developpement/programmation-systeme/windows/scripts-batch/diviser-fichier-texte-sous-windows/#post8153273
facilement adaptable pour créer une première ligne avec les titres de colonnes.
Le script fonctionne, il avait juste une erreur de compteur de ligne sur le 1 fichier
@echo off setLocal EnableDelayedExpansion set limit=10000 set file=splitA.txt set lineCounter=1 set filenameCounter=1 set name= set extension= for %%a in (%file%) do ( set "name=%%~na" set "extension=%%~xa" ) set splitFile=!name!!filenameCounter!!extension! for /f "tokens=*" %%a in (%file%) do ( if !lineCounter! geq !limit! ( set /a filenameCounter=!filenameCounter! + 1 set splitFile=!name!!filenameCounter!!extension! echo Nouveau fichier !splitFile! set lineCounter=0 ) echo %%a>> !splitFile! set /a lineCounter=!lineCounter! + 1 ) pause
sinon il faudrait nous donner un fichier exemple.
Pour 7zip, il faut lancer 7zip d'abord, et dans 7zip, parcourir les fichiers + clic-droit.
Voilà en dupliquant le premier enregistrement contenant le nom des colonnes sur chaque fichier
@echo off setLocal EnableDelayedExpansion set limit=2 set file=splitcsv.csv set lineCounter=0 set filenameCounter=1 set name= set extension= for %%a in (%file%) do ( set "name=%%~na" set "extension=%%~xa" ) set col= set splitFile=!name!!filenameCounter!!extension! for /f "tokens=*" %%a in (%file%) do ( if "!col!" == "" ( set col=%%a) if !lineCounter! gtr !limit! ( set /a filenameCounter=!filenameCounter! + 1 set splitFile=!name!!filenameCounter!!extension! echo !col! > !splitFile! echo Nouveau fichier !splitFile! set lineCounter=1 ) echo %%a>> !splitFile! set /a lineCounter=!lineCounter! + 1 ) pause
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Le Pingou,
Oui pour chaque découpe un nom différent souhaité
Pour exemple le fichier à scinder se nomme MTT.csv
Le résultat sera :
MTT01.CSV
MTT02.CSV
MTT03.CSV .......etc
https://www.cjoint.com/c/LIfo2GzKsdV
Cdlt