Un bouton pour lancer le tri dans la colonne où il se trouve

Bonjour Forum !

Je fais beaucoup de tris.

Plutôt que de paramétrer les tris à chaque fois, je voudrais créer une macro "générique", qui trie une partie de la feuille (une plage nommée), avec pour clé de tri la colonne où se trouve le bouton (disons son bord gauche) cf. fichier joint.

Ca me permettrait de placer une copie de ce bouton dans différentes colonnes et de pouvoir faire des tris à volonté, même si la plage à trier a changé (ajout ou suppression de lignes, d'où l'importance pour moi de passer par une plage nommée, dans mon cas "plage_à_trier").

Dans l'exemple joint : tri par tâche ou tri par bâtiment, ou tri par interlocuteur, ou tri par date au + tard, etc...

Quelqu'un saurait-il m'aider à mettre ça en place ?

Merci !!!

98tri-par-bouton.xlsm (31.00 Ko)

bonjour

c'est automatique !

il suffit de créer une "Liste"

c'est hyper pratique

si tu veux paramétrer des tris élaborés, il suffit d'ajouter une (des) colonnes comportant un calcul de la formule.

Merci pour ta réponse.

C'est en effet un outil super pratique que je ne connaissais pas et que je réutiliserai

(pour la version 2010, accessible par onglet Insertion > bouton Tableau)

Cela dit ça n'est pas approprié à ma feuille, pour 2 raisons :

  • perte des mises en forme conditionnelles
  • perte des filtres préréglés commandés par des boutons (que je n'avais pas inclus dans le fichier joint pour ne pas égarer le lecteur)

Donc si quelqu'un a une autre idée....

comme suggéré,

A/

tu peux créer des colonnes contenant des formules, même complexes, sur lesquelles tu vas trier

B/

de plus les listes conservent les MFC. A chaque ajout de ligne les MFC sont créées toutes seules. Génial

et naturellement les formules aussi sont automatiquement créées. Super, non ?

Merci pour ta réponse.

C'est en effet bien pratique (et plus clair sur mon ordi perso en 2003 que sur mon ordi professionnel en 2010).

Cela dit, je reste preneur de toute suggestion pour des "boutons qui trient" car je veux que mon fichier soit manipulable par n'importe qui -- à commencer par ma patronne qui ne connait rien à excel !!!

Si je lui dis : "liste déroulante", cliquer sur "trier dans l'ordre croissant" etc... ça va la soûler, elle ne voudra pas.

Si je lui dis : clique sur le bouton là, elle le fera.

re

l'enregistreur de macro : enregistre le tri, puis associe-le à un bouton

Merci pour ta réponse.

Créer ce type de macro, je sais faire.

Le problème c'est d'avoir à créer une macro par colonne puis 1 bouton et associer le tout.

Comme je dois le faire pour plein de colonnes dans plusieurs feuilles, c'est fastidieux. Et en plus il faut en reparamétrer une partie si on introduit une nouvelle colonne.

Du coup, j'aimerais pouvoir faire une seule macro qui détecte toute seule dans quelle colonne est positionné le bouton, et qui se serve de cette valeur comme clé de tri.

(même principe que dans ce topic : https://forum.excel-pratique.com/excel/recuperer-le-texte-d-un-bouton-comme-critere-de-filtre-t46724.html)

Si quelqu'un a une idée...

heu, je sèche, désolé

Merci quand même pour ton aide jusque là.

Du coup, je me suis lancé, en m'inspirant très fort du code de Banzaï64 dans le topic mentionné ci-dessus.

Pour moi qui suis inculte en VBA, ça devrait marcher....mais Excel coince, et je ne sais pas quoi faire pour débuguer mon code.

Des idées ?

54tri-par-bouton.zip (12.67 Ko)

Bonsoir

Tes formes ne doivent pas avoir le même nom

Remplaces ta macro par celle-ci

Sub tri()
Dim Champ As Integer
Dim Sh As Shape

  Application.ScreenUpdating = False
  Set Sh = ActiveSheet.Shapes(Application.Caller)
  Champ = Sh.TopLeftCell.Column

    'Application.Goto Reference:="plage_à_trier"
    Range("plage_à_trier").Sort Key1:=Range("plage_à_trier").Cells(1, Champ), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

End Sub

C'est super !

Merci merci merci !!!!

Rechercher des sujets similaires à "bouton lancer tri colonne trouve"