Merci de m'acceuillir sur votre forum tout d'abord !
Voici ma question :
J'ai un fichier avec autant d'onglets que de mois dans l'année. J'ai créé un petit bouton associé à une macro sur chaque onglet afin de trier les cellules selon un ordre prédéfini et pour que la cellule séléctionné en fin de tri soit la dernière non vide.
Enfin... j'ai créé, soyons hônnete, j'ai utilisé la méthode simple qui consiste à enregisitrer une macro en temps réel...
Le problème c'est que j'ai donc 12 macros, une par onglet et que ça fini par être lourd ! (enfin j'imagine que c'est ça qui fait que mon fichier
J'aimerais un moyen pour garder mes 12 boutons, mais qu'il n'y ait plus qu'une seule macro de tri. Après, soit elle fait le tri sur l'onglet actif (l'idéal) soit elle tri tous les onglets en même (pas bien grave).
Un petit fichier test et surtout un grand merci d'avance.
J'avoue que je ne pige pas grand chose en Macro, mais je comprends tout de même que je dois insérer ton code dans chaque feuille et un autre dans le module.
Mais ce que je comprends pas, c'est comment s'active la macro ? Ou est le bouton ?
OK, je viens de comprendre... A moi de créer le bouton et de lui affecter la macro.
Ca marche nickel ! Cependant, ça ne fait pas le tri dans l'ordre voulu, c'est à dire DATE, puis NATIONALITE, puis CLIENT. Le tri ne se fait que par la date. Pourquoi ?
tu n'as pas besoin de bouton,comme dit plus haut c'est l'évènement activate de la feuille qui exécute le code
curseur sur le mot activate et touche F1 pour appeler l'aide et tu sauras tout
edit
pas fait attention,ce que tu demandes es tu sûr que c'est possible
essaye toi même et observe
si tu veux par nationalité il faut commencer par là
avec 2 tris tu devrais avoir assez
Je comprends que le bouton ne soit pas nécessaire, mais j'en ai besoin. Je ne veux pas que le tri se fasse automatique, je veux que ça soit fait quand l'utilisateur le souhaite.
D'autre part, je ne comprends pas ton edit. Excel permet bien un tri à plusieurs niveau. Premier tri sur la date, puis en cas de date identique, tri sur la nationalité, puis en cas de date et de nationalité identique, tri sur le nom du client. Cela dit, seul les 2 premiers sont nécessaire.
Merci pour l'ajout de bouton. Ca marche impec pour le tri par date. Mais pas pour le reste des conditions de tri... Pourtant je vois bien dans Visual Basic que l'ordre est le bon
Sauf pour la sélection en fin de tri. En fait, avec cette macro, la cellule sélectionné et la dernière du tableau et non la première non vide. Et c'est bien normal, puisque je m'étais trompé dans mon énoncé initial !!
Donc que rajouter pour qu'à la fin du tri, la cellule sélectionné soit la PREMIERE non vide (ou la dernière de la plage trié).
Public Sub TriFeuille()
'à ajuster B2:D1000,d'après ta plage
[B2:D1000].Sort [B2], key2:=[D2], key3:=[C2]
[D65536].End(xlUp).Offset(1, 0).Activate'1ère cellule vide de la colonne D
End Sub