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