Couper un fichier Excel en plusieurs fichiers

Bonjour,

Est ce que quelqun aura une idée comment faire pour couper un fichier excel sur plusieurs fichiers en fonction d'une colonne (dans mon cas la colonne est T et elle peut etre 300 ,350 ,500 ,650 ,800 ,47, 85)

j'aimerais bien savoir comment faire pour creer des nouveaux fichier excel en fonction de cette colonne

Merci Beaucoup ))

bonjour

sans fichier exemple difficile de pouvoir te proposer quelque chose.... mais voici une idée : creuse au niveau des filtres élaborés

voir un exemple ici :

https://forum.excel-pratique.com/excel/macro-vba-creation-d-autant-de-fichiers-qu-il-y-a-des-code-t63202.html

fred

Merci Beaucoup Fred

je vous mets en piece jointe mon fichier , j'aimereais le découper rapport a la branche (Colonne T)

Re

il manque quand même quelques informations...

le nom des fichiers crées ??

si les fichiers existent déjà écrasement ou pas ?

fichier créé dans le meme endroit ou se trouve le fichier complet ?? un sous dossier ? quel nom ??

fred

le nom des fichiers creers : c'est par rapport a la branche T : exemple (2500,300....) aussi ca serait bien de les sauvegarder dans le meme dossier pres du fichier complet et pas d'écrasement si les fichiers existent deja Merci beaucoup Fred

re

un essai

si le fichier existe déjà, on n'ecrase pas et pas d'affichage de message d'erreur

fred

MERCI

je l'ai testé plusieurs fois mais je trouve pas les fichiers est ce que y'a t -il un path que je dois modifier

Bizarre

moi quand j'appuie sur le bouton

capture

j'ai bien la création des fichiers

capture2

as tu activé les macros ??

fred

oui est ce que je peux ajouter un path

c'est sur ton desktop qu'il fait la sauvegarde?

NON comme demandé, les fichiers créés sont au meme endroit que le fichier contenant la macro si tu as mis le fichier sur le bureau ils sont sur le bureau....

oui il est possible d'ajouter un sous dossier....

fred

Aussi je voulais savoir quelque chose est ce que c'est possible d'ecraser les fichiers qui existent deja et les remplacer par les nouveaux a chaque fois qu'on execute la macro vue que le fichier complet est toujours modifiable ?

Re

c'est quand même dommage que je demande ceci :

si les fichiers existent déjà écrasement ou pas ?

que tu me répondes :

pas d'écrasement si les fichiers existent deja

pour me dire quelques minutes plus tard :

est ce que c'est possible d'ecraser les fichiers qui existent deja et les remplacer par les nouveaux a chaque fois

à l'avenir merci de réfléchir un peu plus au cahier des charges avant de répondre

ci joint la modif

fred

Merci Beaucoup Fred

je pensais si ça serait une autre option , je te remercie énormément pour ton temps.

Bonne journée

Visiblement tu n'as pas trouvé le dernier fichier avec la dernière modif ...car personne ne l'a téléchargé jusqu’à maintenant ...

si jamais la solution convient

Merci

Fred

j'essaye de modifer un peu ton code pour renommer les fichiers par rapports a la colonne U et pas a T :/

nouveau fichier correspondant a U+ T dans le nom du fichier créé

fred

Merci C'est magnifique Fred ))


pk je recois des ## à la place des dates ? tu recois la meme chose aussi ?

bonsoir

les ### c'est que la largeur de la colonne n'est pas assez large pour faire apparaître la date en entier... un ajustement auto de la colonne et la date apparaîtra correctement

comme ta branche n'est plus en en T mais en O il faut modifier cette ligne :

sh.Range("T5:U" & Dlg).Copy sh.[AA1]

fred

Bonjour Fred

je fais ce que tu m'as expliqué voici mon code par rapport a [O] :

Option Explicit

Sub creation_fichiers()
Dim i As Integer
Dim sh, Dlg, plg
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set sh = Sheets(1)
Dlg = sh.Cells(Rows.Count, 1).End(xlUp).Row
Set plg = sh.Range("A5:U" & Dlg)
sh.Range("O6:U" & Dlg).Copy sh.[AA1]
sh.[AA:AB].RemoveDuplicates Columns:=Array(2), Header:=xlYes
sh.[AC1] = sh.[O6]

For i = 2 To sh.Cells(Rows.Count, "AA").End(xlUp).Row
Workbooks.Add
sh.[AC2] = sh.Range("AA" & i)
plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=sh.Range("AC1:AC2"), CopyToRange:=ActiveWorkbook.Sheets(1).Range("A1:U1")

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sh.Range("AB" & i) & "-" & sh.Range("AA" & i) & ".xls", FileFormat:=xlExcel8

ActiveWorkbook.Close False
Next i
sh.[AA:AC].ClearContents
End Sub

Voici l'erreur

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sh.Range("AB" & i) & "-" & sh.Range("AA" & i) & ".xls", FileFormat:=xlExcel8

Microsoft Office Excel cannot access the file 'c:\User\..\...\...'. There are several possible reasons:

• The file name or path does not exist.

• The file is being used by another program.

• The workbook you are trying to save has the same name as a currently open workbook

Re

remplace

sh.Range("O6:U" & Dlg).Copy sh.[AA1]

par

sh.Range("O6:O" & Dlg).Copy sh.[AA1]
sh.Range("U6:U" & Dlg).Copy sh.[AB1]

fred

Rechercher des sujets similaires à "couper fichier fichiers"