Couper un fichier excel en plusieurs fichiers

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
Lvholleb
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 4 décembre 2019
Version d'Excel : 2016
Version de Calc : EN
Version de Sheets : EN

Message par Lvholleb » 4 décembre 2019, 15:33

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 !
RECEPTION 28122019.xlsx
(84.97 Kio) Téléchargé 6 fois
Avatar du membre
GVIALLES
Membre dévoué
Membre dévoué
Messages : 816
Appréciations reçues : 73
Inscrit le : 28 novembre 2017
Version d'Excel : 2016, 360
Téléchargements : Mes applications

Message par GVIALLES » 5 décembre 2019, 11:13

Bonjour Lvholleb,

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

Gérard
L
Lvholleb
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 4 décembre 2019
Version d'Excel : 2016
Version de Calc : EN
Version de Sheets : EN

Message par Lvholleb » 5 décembre 2019, 13:01

Bonjour Gérard,

Oui en effet, il s'agit d'un oubli de ma part mais les lignes 735 à 740 seront supprimées.
L
Lvholleb
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 4 décembre 2019
Version d'Excel : 2016
Version de Calc : EN
Version de Sheets : EN

Message par Lvholleb » 16 décembre 2019, 15:07

Bonjour Gérard,

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

Merci d'avance pour votre aide.
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'059
Appréciations reçues : 37
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 24 décembre 2019, 10:19

Bonjour
le découpage en différents fichiers marche très bien ...
voici l’exécution du code :
Capture.JPG
Capture.JPG (59.55 Kio) Vu 95 fois
j'ai 136 fichiers qui sont créés...

Concernant la rapatriement dans un seul fichier... rien de difficile non plus... je vais voir
Fred
RECEPTION 28122019.xlsm
(67.03 Kio) Téléchargé 14 fois
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'059
Appréciations reçues : 37
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 24 décembre 2019, 10:48

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
Recuperation.xlsm
(24.9 Kio) Téléchargé 5 fois
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'427
Appréciations reçues : 674
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 24 décembre 2019, 12:54

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... :P
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message