Couper un fichier Excel en plusieurs fichiers

Bonjour à tous,

Je reviens avec un sujet qui a déjà été traité les dernières années mais qui présente pour moi toujours un obstacle en raison de mon manque de connaissance des Macros.

J'ai deux soucis :

1) Un fichier Excel devant être découpé en plusieurs fichiers à partir des informations reprises dans la colonne A. Cette colonne comporte des numéros de colis, auxquels sont liés des références de pièces et des données de commande. Je souhaiterais que la macro puisse créer un nouveau fichier pour chaque numéro de colis, avec dans chaque fichier, les lignes se rapportant à ce numéro de colis.

J'ai repris une Macro éditée par fred2406 en 2016 et ai tenté de la modifiée pour l'adapter à mon besoin. Elle semble se lancer mais je n'ai pas de résultat une fois le calcul terminé.

Auriez-vous la gentillesse de m'aider à définir la macro ? Ce besoin est récurrent et je souhaiterais par la suite pouvoir couper/coller la macro pour d'autres fichiers dont le format sera identique (intitulés de colonnes et type de données).

Je vous joins le fichier à ce message et voici ci-dessous la macro actuelle :

Sub Split_Per_Box_nr()

Dim i As Integer

Dim sh, Dlg, plg

Application.ScreenUpdating = False

Set sh = Sheets(1)

Dlg = sh.Cells(Rows.Count, 1).End(xlUp).Row

Set plg = sh.Range("A1:I" & Dlg)

sh.Range("A1:A" & Dlg).Copy sh.[AA1]

sh.[AA:AA].RemoveDuplicates Columns:=Array(1), Header:=xlYes

sh.[AB1] = sh.[A1]

For i = 2 To sh.Cells(Rows.Count, "AA").End(xlUp).Row

Workbooks.Add

sh.[AB2] = sh.Range("AA" & i)

plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=sh.Range("AB1:AB2"), CopyToRange:=ActiveWorkbook.Sheets(1).Range("A1:I1")

If Dir(ThisWorkbook.Path & "\Box " & sh.Range("AA" & i) & ".xls") = "" Then ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Box " & sh.Range("AA" & i) & ".xls", FileFormat:=xlExcel8

ActiveWorkbook.Close False

Next i

sh.[AA:AB].ClearContents

End Sub

2) Second souci, après traitement par un système de scan de tous les fichiers créés à la première étape, je souhaiterais pouvoir sélectionner tous ces fichiers et les fusionner sur une seule page Excel. Soit le chemin inverse de l'étape précédente. Avez-vous une solution pour cela également ?

Merci d'avance pour votre aide !

Bonjour Lvholleb,

Dans ta ventilation des colis, faut-il ignorer les lignes 735-740 de totalisation dans l'exemple fourni?

Bonjour Gérard,

Oui en effet, il s'agit d'un oubli de ma part mais les lignes 735 à 740 seront supprimées.

Bonjour Gérard,

Avez-vous trouvé un peu de temps à consacrer à mon problème ?

Merci d'avance pour votre aide.

Bonjour

le découpage en différents fichiers marche très bien ...

voici l’exécution du code :

capture

j'ai 136 fichiers qui sont créés...

Concernant la rapatriement dans un seul fichier... rien de difficile non plus... je vais voir

Fred

Re

Ci joint un fichier qui fait la récupération du contenu des fichiers...

un sous dossier "traiter" doit exister par rapport a l'emplacement de ce fichier, et les fichiers dans lesquels il faut faire la récupération doivent être dans ce dossier...

le nom du sous dossier peut-être changer dans le code ici :

 chemin = "\traiter\"

Fred

11recuperation.xlsm (24.90 Ko)

Bonjour,

@Lvholleb,

je serai bien intervenu, mais vu ton profil !...

Une proposition compatible Excel 2016, Calc (EN) et Sheets (EN), je ne sais pas faire...

Cdlt.

Rechercher des sujets similaires à "couper fichier fichiers"