Découpage de données dans différentes feuilles

drone

XLDnaute Nouveau
Bonjour,

Je souhaite à partir d'une liste de clients, avoir une macro qui me découpe cette liste de clients dans plusieurs feuilles suivant un champ donné.
J'ai déjà enregistreé une macro qui permet de faire celà mais les valeurs sont rentrées manuellement dans le code.

Petit exemple pour être plus clair :
J'ai une liste de mes clients avec un champ département et un champ vendeur.
je veux une macro qui me crée une feuille par département ou bien, suivant les besoins, par vendeur.

Ce que j'ai déjà :
Une macro que j'ai enregisté pour un département et j'ai fait un copier/coller du code en adaptant pour chaque département.

Les limites : Si un nouveau département arrive dans ma liste, il faut que je le rajoute manuellement.
Si je veux faire répartir par vendeur, il faut que je modifie tout.

Est-ce que quelqu'un aurait une macro qui fasse ce genre de chose.
Merci
 

papapaul

XLDnaute Impliqué
Re : Découpage de données dans différentes feuilles

:rolleyes: Bonjour,
Ci-joint un truc qui permet de créer les onglets avec un choix
de 2 colonnes, si tu veux vraiment 1 seule, tu tapes
2 fois A ou B etc.
J'espère que tu pourra l'adapter.
Bon courage ;)
 

Pièces jointes

  • creongcoplig.zip
    21.6 KB · Affichages: 60

drone

XLDnaute Nouveau
Re : Découpage de données dans différentes feuilles

Merci,
cette macro est pas mal.
je ne connais pas grand chose en visual basic mais j'arrive quand même à me débrouiller.

Cependant, cette méthode ne garde pas la mise en forme initiale, ainsi que la mise en page.
Ma macro initiale fait une copie de la feuille de base (qui est déjà formatée et mise en page) , fait un filtre automatique : "différent de" ce que je veux garder et supprime ces lignes. Du coup je garde ma mise en page.

Cela dit cette macro est intéressante et à mettre sous le coude.

Voici une partie de ma macro (pour une sélection) :

Sheets("Liste").Select
Sheets("Liste").Copy After:=Sheets(7)
Sheets("Liste (2)").Name = "MEUSE"
Selection.AutoFilter Field:=2, Criteria1:="<>MEUSE", Operator:=xlAnd
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter
 
Dernière édition:

drone

XLDnaute Nouveau
Re : Découpage de données dans différentes feuilles

Bonjour,
voici le code de ma nouvelle macro :

Sub TestFeuillesSecteurs()

Dim derlign As Long
derlign = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Count).Row
Dim x As Collection
Set x = New Collection
Dim y As Collection
Set y = New Collection
Dim wb As Workbook
Set wb = ThisWorkbook

COL_FEUI = InputBox("Colonne de référence pour l’insertion des feuilles : A,B, etc...")

Application.ScreenUpdating = False

For N = 2 To derlign
' pour creer le tableau des feuilles
Range(COL_FEUI & N).Select
On Error Resume Next
x.Add Range(COL_FEUI & N), CStr(Range(COL_FEUI & N))
On Error GoTo 0
Next N

ligne = 2
Application.ScreenUpdating = True

For N = 1 To x.Count

Sheets("Liste").Select
Sheets("Liste").Copy After:=Sheets(N)
ActiveSheet.Name = x(N)
Selection.AutoFilter Field:=2, Criteria1:="<>" & x(N), Operator:=xlAnd
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter
Next N



End Sub

Maintenant un nouveau problème se pose : comment convertir la lettre de la colonne "B" (par ex.) en numéro de colonne "2" pour mettre dans "Selection.AutoFilter Field:=2".
La question étant différente du sujet initial, j'ai fait un nouveau topic.

En tous cas merci papapaul, ta macro m'a super bien aidé.
 
Dernière édition:

Discussions similaires