macro pour trier puis classer

  • Initiateur de la discussion Initiateur de la discussion brice_mhc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

brice_mhc

Guest
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

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:
Re : macro pour trier puis classer

Merci à vous trois pour vos conseils.
je vais tâcher de voir quelle solution est la meilleure.
Je ne comprends pas entirement les macros mais je vais potasser ça tout de suite.
Je vous tiens au courant.

Merci
 
Re : macro pour trier puis classer

Une question Nat,

tu parles de "feuille de référence" et de "la feuille où se trouve la BD" dans ta macro.
Qu'entends tu par ces 2 feuilles-là? BD veut dire base de données?

merci
 
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 🙂
 
Re : macro pour trier puis classer

😕 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.😱
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
740
Retour