Bonjour,
J'utilise un fichier Excel qui me permet d'agréger des données multi-clients puis à générer, par client, des fichiers pdf.
Or, mes clients souhaitent que je leur envoie ces données par fichier Excel. J'aimerai donc pouvoir trouver une formule qui filtre mon tableau par client puis, pour chaque client, en génère un tableau Excel propre.
On m'a transmis une macro mais celle-ci suit le cheminement suivant :
* Filtre données pour le client i,
* Transfère les données vers un onglet "vierge",
* Sauvegarde le tout (tout le fichier) sous la forme "Données client i.xls".
Or, mon fichier de base est un fichier xlsm qui contient bon nombre d'onglets préparatoires, qui permettent de mettre en forme mon tableau final. Et j'ai plus de 80 clients différents. La méthode que l'on m'a indiquée (et que je retrouve sur le net) m'oblige donc, pour chacun des fichiers "Données client i.xls" à supprimer l'ensemble des onglets qu'il est inutile de transférer aux clients...
Est-il possible de générer un fichier à partir d'un unique onglet, ou une méthode permettant d'ajouter à un fichier excel externe modèle (que je préparerais alors en amont) le contenu filtré ?
Ci-joint la méthode transmise :
D'avance, merci pour vos retours toujours éclairants !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Sub edition() For i = 2 To 83 Sheets("INVAENVOY").Range("$A$3:$S$70000").AutoFilter Field:=3, Criteria1:=Sheets("Feuil3").Range("A" & i), Operator:=xlOr, Criteria2:="=X" ChDir "\\lurs\_partage\Maint\CIM\MEM\02 - Equipements\02 - Inventaires\01 - MEM\Inventaires 2019\test" Range("A1").Select DernLigne = Sheets("INVAENVOY").Range("A65536").End(xlUp).Row Sheets("INVAENVOY").Range("A1:R" & DernLigne).Copy 'Workbooks.Add Sheets("Feuil1").Select Rows("1:1").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Feuil1").Select Rows("1:1").Select Selection.AutoFilter Cells.Select Cells.EntireColumn.AutoFit 'ActiveSheet.Protect Password:="cimbat", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _ AllowUsingPivotTables:=True ActiveWorkbook.SaveAs Filename:="\\lurs\_partage\Maint\CIM\MEM\02 - Equipements\02 - Inventaires\01 - MEM\Inventaires 2019\test\IGS 0" & Sheets("Feuil1").Range("C2") & " - Inventaire MEM 2019.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'ActiveWorkbook.Close Sheets("Feuil1").Select Sheets("Feuil1").Range("A1:R" & DernLigne).Delete Next End Sub
Partager