Découpage fichier selon 3 critéres
Bonjour, à tous,
je me permet de vous solliciter car je sèche et malgré toutes mes recherches je n'ai pas trouvé mon bonheur.
j'ai une base de données que je dois "éclater" en plusieurs fichiers Excel selon 3 critères, Entité/Département/Type
Lors d'un ancien projet je le faisais sur 1 critère et cela fonctionne parfaitement. Le code est du style for each client in array, je copie/colle les données dans un autre onglet et j'enregistre sous la forme d'un fichier portant le nom de ce client et je boucle sur le suivant.
Sauf que là vu que je travaille avec les département je vais me retrouver avec plus de 300 typologies différentes donc je dois tirer un trait sur mon array
le résultat attendu est que je veux recenser tout les BOP du département 01 ayant le type 1 et je boucle sur l'autre type et je refais la même chose pour le département suivant etc etc ...
Si l'un d'entre vous pourrait me donner une piste, je vous en serais extrêmement reconnaissant
Bonjour,
Vous créez une colonne Entité - Département - Type et vous appliquez votre code sur cette colonne.
=[@Entité]&" "&[@Département]&" "&[@Type]Bonjour Eric, Bruno
merci pour vos premier retours.
pour ce qui est de concatener les critères j'y ai pensé car je l'utilise souvent pour mes rechercheV mais je me retrouve avec 754 typologies différentes, donc ça reste assez compliqué sauf si une astuce m'échappe.
Bruno, mon prédécesseur faisait effectivement un tcd puis cliquait sur les données et enregistrait chaque onglet en fichier Excel mais bon...
le but du jeu est d'avoir un fichier excel regroupant chaque ID du site selon les 3 autres critères ( Entité/Département/Type)
Edit : aah une lueur vient d'arriver, en bouclant sur ma liste
Bonjour à tous,
j'arrive quasi au bout grâce à excellent post de Fred2406 que je remercie : https://forum.excel-pratique.com/excel/couper-un-fichier-excel-en-plusieurs-fichiers-77876
néanmoins j'ai un soucis pendant l’exécution de la macro et ce n'est pas tout le temps au même endroit
le code adapté à mon fichier :
Sub creation_fichiers()
'Définition des variables
Dim i As Integer
Dim sh, Dlg, plg
Application.ScreenUpdating = False
' variable sh = onglet sur lequel on travaille
Set sh = Sheets("Sites")
' variable pour déterminer la dernière ligne du tableau
Dlg = sh.Cells(Rows.Count, 1).End(xlUp).Row
' variable pour déterminer le tableau
Set plg = sh.Range("A1:Z" & Dlg)
' mise en place du filtre avancé Excel
sh.Range("Z1:Z" & Dlg).Copy sh.[AB1] 'on copie les scenarios en cellule AB
sh.[AB:AB].RemoveDuplicates Columns:=Array(1), Header:=xlYes ' on supprime les doublons
sh.[AC1] = sh.[Z1] ' on met en place une donnée pour faire notre filtre de recherche
'on boucle sur la liste de typologie dédoublonnée
For i = 2 To sh.Cells(Rows.Count, "AB").End(xlUp).Row
Workbooks.Add 'on créé un nouveau
sh.[AC2] = sh.Range("AB" & i)
plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=sh.Range("AC1:AC2"), CopyToRange:=ActiveWorkbook.Sheets(1).Range("A1:Z1")
If Dir(ThisWorkbook.Path & sh.Range("AB" & i) & ".xlsx") = "" Then ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & sh.Range("AB" & i) & ".xlsx", FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close False
Next i
sh.[AB:AC].ClearContents
End Subde temps en temps ça me bloque à ActiveWorkbook.Close Falseet souvent sur
Next ije n'y comprend plus rien, si vous aviez une idée svp
je vous remercie