Besoin d'une macro Excel pour création de feuilles
1 réponse
Dicky-Bird
Bonjour,
Voila mon Pb;
j'ai par exemple cette feuille Excel :
colA colB colC ...
1001 nom1 pre1
1001 nom2 pre2
2002 nom3 pre3
2002 nom4 pre4
2002 nom5 pre5
3005 nom6 pre6
.....
a partir de cette liste, je voudrais créer autant de feuilles que de valeurs
uniques de colA, soit pour l'exemple :
* une feuille nommée 1001 avec uniquement les lignes 1001
* une feuille nommée 2002 avec uniquement les lignes 2002
* une feuille nommée 3005 avec uniquement les lignes 3005 etc
Je pense qu'il n'y a qu'une macro pour réaliser cela, mais comment faire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ellimac
Bonjour,
à adapter sûrement :
Sub Découpage() Range(Range("A1"), Range("A1").End(xlDown)).AdvancedFilter _ Action:=xlFilterCopy, CopyToRange:=Range( _ "G1"), Unique:=True Range("A1").AutoFilter n = Application.CountA(Columns(7)) - 1 For cpt = 1 To n Step 1 Range("A1").AutoFilter Field:=1, Criteria1:=Range("g1").Offset(cpt) Range(Columns(1), Columns(4)).Copy Sheets.Add ActiveSheet.Paste Range("a1").Select ActiveSheet.Name = Range("A2") Sheets("base").Select Next Selection.AutoFilter Field:=1 Range("a1").Select End Sub
Camille "Dicky-Bird" a écrit dans le message de news:
Bonjour,
Voila mon Pb; j'ai par exemple cette feuille Excel : colA colB colC ... 1001 nom1 pre1 1001 nom2 pre2 2002 nom3 pre3 2002 nom4 pre4 2002 nom5 pre5 3005 nom6 pre6 ..... a partir de cette liste, je voudrais créer autant de feuilles que de valeurs uniques de colA, soit pour l'exemple : * une feuille nommée 1001 avec uniquement les lignes 1001 * une feuille nommée 2002 avec uniquement les lignes 2002 * une feuille nommée 3005 avec uniquement les lignes 3005 etc
Je pense qu'il n'y a qu'une macro pour réaliser cela, mais comment faire ?
Merci pour votre aide,
Cordialement,
Bonjour,
à adapter sûrement :
Sub Découpage()
Range(Range("A1"), Range("A1").End(xlDown)).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Range( _
"G1"), Unique:=True
Range("A1").AutoFilter
n = Application.CountA(Columns(7)) - 1
For cpt = 1 To n Step 1
Range("A1").AutoFilter Field:=1, Criteria1:=Range("g1").Offset(cpt)
Range(Columns(1), Columns(4)).Copy
Sheets.Add
ActiveSheet.Paste
Range("a1").Select
ActiveSheet.Name = Range("A2")
Sheets("base").Select
Next
Selection.AutoFilter Field:=1
Range("a1").Select
End Sub
Camille
"Dicky-Bird" <Dicky-Bird@discussions.microsoft.com> a écrit dans le message
de news: 0BF3DFA6-1B54-4E69-85E6-A440F679C2D3@microsoft.com...
Bonjour,
Voila mon Pb;
j'ai par exemple cette feuille Excel :
colA colB colC ...
1001 nom1 pre1
1001 nom2 pre2
2002 nom3 pre3
2002 nom4 pre4
2002 nom5 pre5
3005 nom6 pre6
.....
a partir de cette liste, je voudrais créer autant de feuilles que de
valeurs
uniques de colA, soit pour l'exemple :
* une feuille nommée 1001 avec uniquement les lignes 1001
* une feuille nommée 2002 avec uniquement les lignes 2002
* une feuille nommée 3005 avec uniquement les lignes 3005 etc
Je pense qu'il n'y a qu'une macro pour réaliser cela, mais comment faire
?
Sub Découpage() Range(Range("A1"), Range("A1").End(xlDown)).AdvancedFilter _ Action:=xlFilterCopy, CopyToRange:=Range( _ "G1"), Unique:=True Range("A1").AutoFilter n = Application.CountA(Columns(7)) - 1 For cpt = 1 To n Step 1 Range("A1").AutoFilter Field:=1, Criteria1:=Range("g1").Offset(cpt) Range(Columns(1), Columns(4)).Copy Sheets.Add ActiveSheet.Paste Range("a1").Select ActiveSheet.Name = Range("A2") Sheets("base").Select Next Selection.AutoFilter Field:=1 Range("a1").Select End Sub
Camille "Dicky-Bird" a écrit dans le message de news:
Bonjour,
Voila mon Pb; j'ai par exemple cette feuille Excel : colA colB colC ... 1001 nom1 pre1 1001 nom2 pre2 2002 nom3 pre3 2002 nom4 pre4 2002 nom5 pre5 3005 nom6 pre6 ..... a partir de cette liste, je voudrais créer autant de feuilles que de valeurs uniques de colA, soit pour l'exemple : * une feuille nommée 1001 avec uniquement les lignes 1001 * une feuille nommée 2002 avec uniquement les lignes 2002 * une feuille nommée 3005 avec uniquement les lignes 3005 etc
Je pense qu'il n'y a qu'une macro pour réaliser cela, mais comment faire ?