macro pour trier puis classer

brice_mhc

XLDnaute Nouveau
bonjour à tous,

J'ai un gros tableau excel avec plusieurs lignes de plusieurs colonnes avec dans chaque colonne des données telles que nom client/ segment/ nom du conseiller/ metier.....

Je souhaiterais trier ce tableau par "nom de conseiller" et en fonction des noms de conseiller les dispatcher sur des feuilles dans le même classeur. Ainsi, pour chaque conseiller il y aura une nouvelle feuille et dans cette nouvelle feuille sera récapitulé la liste de tous les clients attachés à ce conseiller.

J'ai joins fichier avec les mêmes titres de colonnes mais pour lequel le contenu du tableau a été rétréci.
Dans la deuxième feuille, j'ai mis un exemple de ce que je souhaitais obtenir.

Je ne suis pas une bête en VBA mais je souhaite vraiment apprendre toutes les ficelles de ce système.

Merci d'avance de votre aide.

Brice
 

Pièces jointes

  • demo.xls
    17 KB · Affichages: 140
  • demo.xls
    17 KB · Affichages: 142
  • demo.xls
    17 KB · Affichages: 140

nat54

XLDnaute Barbatruc
Re : macro pour trier puis classer

Bonjour Brice, Hervé

J'avais fait la même chose par indicateur en stage ; càd un onglet par indicateur via un filtre automatique

J'avais mis en onglet "ref" le nom de ces xxx indicateurs

A ADAPTER
 Macro 1 : créer les onglets d’un fichier à partir d’un filtre automatique

Code:
Sub Créer_objectifs_CC()

Application.ScreenUpdating = False  'ne pas voir ce qui se passe à l'écran, diminue besoin mémoire

For lgn = 2 To 24   'pour boucler sur les lignes 2 à 24

Sheets("Ref").Select   'on se place sur la feuille de référence
indic = Cells(lgn, 1).Value    'on variabilise, indic = cellule ligne de la boucle, colonne 1
Sheets("Recap Objectif CC").Select   ''on se place sur la feuille où se trouve la BD

Range("e1").Select   'on choisit un indicateur dans filtre automatique
Selection.AutoFilter
Selection.AutoFilter Field:=5, Criteria1:=indic ‘ l’indicateur se trouve en colonne 5

    Range("A1:R1500").Select
    Range("R1500").Activate
    Selection.Copy
    

Sheets.Add After:=Worksheets(Worksheets.Count)     'on ajoute un onglet après les 2 premières feuilles
ActiveSheet.Name = indic    'on nomme l'onglet comme nom indicateur

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False   ' on colle
Next lgn   ' on continue sur 2nd, 3èm.. indicateur (boucle)

Application.ScreenUpdating = True

End Sub
 
Dernière édition:

nat54

XLDnaute Barbatruc
Re : macro pour trier puis classer

Bonjour @ all,

--> feuille de référence nommée "ref"
J'avais la liste de tous mes indicateurs, donc toi la liste de tous les conseillers

--> feuille où se trouve la BD
BD, oui c'est base de données donc ton gros tableau

A te lire :)
 

brice_mhc

XLDnaute Nouveau
Re : macro pour trier puis classer

:confused: Et tu pourais me dire comment je dois faire pour faire une liste sur une autre feuille de tous les conseillers de ma BD? ca me dit pas trop de le faire à la main car mon tableau fait presque 10000 lignes.
desolé de paraitre aussi inculte.:eek:
 

nat54

XLDnaute Barbatruc
Re : macro pour trier puis classer

Bonjour,

Ah oui quand même...

Alors
1° Sur ta base, tu copies les noms des conseillers même avec les doublons

2° Tu colles dans un autre fichier en colonne A

3° Je te donne la macro pour enlever les doublons
Tu auras donc ta liste de conseillers


 Macro 11 : enlever les doublons d’une liste de valeurs
Code:
Sub ENLEVER_DOUBLONS()
ListeValUniques Range("A2:A5000"), Range("E1")   ‘ on met la liste en colonne 1, la liste épurée se colle en colonne E
End Sub

Sub ListeValUniques(PlageSrc As Range, CellDest As Range)
'Extrait les valeurs uniques d'une colonne et les renvoie
'dans une autre, à partir de CellDest
Dim Arr1, Elt, Arr2(), Coll As New Collection

If PlageSrc.Columns.Count > 1 Then Exit Sub
Arr1 = PlageSrc.Value

For Each Elt In Arr1
On Error Resume Next
Coll.Add Elt, CStr(Elt)
If Err.Number = 0 Then
ReDim Preserve Arr2(1 To Coll.Count)
Arr2(Coll.Count) = Elt
End If
On Error GoTo 0
Next

CellDest.Resize(Coll.Count).Value = _
Application.Transpose(Arr2)

End Sub
 

brice_mhc

XLDnaute Nouveau
Re : macro pour trier puis classer

bonjour hervé,

j'ai essayé d'adapter ta proposition à mon gros tableau mais lorsque je veux éxécuter la macro excel me met "Erreur d'éxécution '1004'" et me propose un débogage.
Ce que j'ai gentiment accepté; celui-ci me surligne une ligne dans VBA; je t'ai mis en pièce jointe cette ligne; je n'ai pas su interprété ce que ça voulait dire car je ne comprends pas trop ce passage-là. D'ailleurs ca m'intéresserais que tu m'expliques rapidement le déroulement de ta macro.

A ce propos, je tiens à remercier Nat qui grace à ses commentaires m'a permis de comprendre sa macro.

Enfin, la proposition de Bebere marche tres bien. Merci à toi Bebere.
 

Pièces jointes

  • Doc1.zip
    39.8 KB · Affichages: 87
  • Doc1.zip
    39.8 KB · Affichages: 84
  • Doc1.zip
    39.8 KB · Affichages: 80

Discussions similaires

Statistiques des forums

Discussions
312 430
Messages
2 088 359
Membres
103 827
dernier inscrit
TiphaineBnd