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 !