Découpe 1 fichier en plusieurs petit en gardant entete

Bonjour a tous,

J’ai une macro qui me sert pour un fichier de 250 000 ligne et de x colonnes, a le découper en plusieurs fichiers de 25000 lignes

Suivant le contenu j’arrive a +ou – 80 fichiers en CSV

Jusque-là tout va bien.

ce que je n’arrive pas a faire et c’est pour cela que j’ai besoin de votre aide

Je voudrais que tous les fichiers générés gardent l’entête du fichier de base, toute la ligne du haut

Donc les 80 fichiers découpés auront tous le même entête que le premier celui de 250000

Aussi quand les fichiers sont découpés en CSV, ils restent tous ouvert, quand je regarde tout est ok, ils ont un nom et sont supposés être au bon format, si je les referme et les ouvres après, tout le fichier n'est plus comme il etait avant enregistrement, pour éviter cela, je dois donc fichier par fichier cliquer sur enregistrer sous, 80 fois si non la mise en forme en csv part en live.

En sachant que quand les fichiers sont tous ouvert sa bouffe de la ressource pas qu’un peu.

Donc en résumé,

- garder l’entête du fichier de base sur tous les fichiers générés en CSV

et

-"enregistré" en CSV et fichier fermé.

Je vous remercie pour tout

voici la macro

Bonjour,

Mets Début=2

et ensuite pour la copie, remplace

Range(Cells(Début, 1), Cells(fin, 53)).Copy

par

Range("A1:BA1,A" & Début & ":BA" & fin).Copy

pour ta boucle, passe plutôt à quelque chose comme do while ... loop

au lieu de

NbCopie = Application.RoundUp((Application.Subtotal(3, Sheets(MySheet).Range("a:a")) / fin), 0)
For i = 1 To NbCopie
'...
Next i

essaie

i=1
Do While Cells(Début, 1)<>""
'...
Loop

Exemple par paquets de 50 lignes sur 9 colonnes

Sub CopieNewFiles()

MyBook = ActiveWorkbook.Name
MySheet = ActiveSheet.Name

i = 1
Début = 2
fin = 50

Do While Cells(Début, 1) <> ""
    Range("A1:I1,A" & Début & ":I" & fin).Copy
    Workbooks.Add
    ActiveSheet.Paste
    ActiveWorkbook.SaveAs Filename:="Pasted_" & i, FileFormat:=xlCSV
    ActiveWorkbook.Close savechanges:=True
    Windows(MyBook).Activate
    Début = fin + 1
    fin = fin + 50
    i = i + 1
Loop

End Sub

c'est parfait

pour la découpe et l’entête

juste un bug quand dans une cellule il y a un contenu HTML quand on ouvre le fichier le csv n'est pas bon

bizare

Quel fichier ? le fichier csv créé ?

envoie le fichier en question (éventuellement en MP)

Bonjour,

ta feuille à découper ne viendrait pas elle-même d'un fichier texte chargé ?

Si oui autant travailler directement sur lui, ligne à ligne.

Au moins tu seras sûr d'avoir les lignes à l'identique, sans une interprétation d'excel au passage à corriger.

eric

samexel a écrit :

juste un bug quand dans une cellule il y a un contenu HTML quand on ouvre le fichier le csv n'est pas bon

Cela veut dire quoi "du contenu html" ? car pour moi c'est du texte !

Certes Excel peut l'interprêter de lui-même comme <table> ou <div___>

En fait dans la cellule ou il y a du l'HTML, je viens de voir, qu'il y a une successions de ; point virgule

si je les remplace par un autre caractère tout est ok


pour moi tout est ok un grand merci a tous

sam

Rechercher des sujets similaires à "decoupe fichier petit gardant entete"