Filtre avec le clic droit de la souris

Apprenti.xls

XLDnaute Nouveau
Bonjour à tous ! :)

À peine inscrit, j'en suis déjà à la seconde question ... Comme mon pseudo l'indique, j'apprends... mais je ne vais pas tarder à essayer d'apporter ma modeste contribution à certains. :eek:
Sur les feuilles, je me débrouille plutôt, mais je débute avec les macros. :whistle:

J'ai réussi à me fabriquer une nouvelle ligne de commande pour le clic droit en faisant apparaître la barre de filtre, aujourd'hui je souhaiterais en ajouter une autre qui filtrerait directement à partir de cellule sélectionnée, et puisqu'on y est, pourquoi pas séparer ces commandes du reste ...

Quelqu'un ou quelqu'une pourrait-il m'aider ?

Je vous joins le code de mon clic droit pour la barre auto :

Code:
Sub Clic_droit_Filtre()
  With Application.CommandBars('Cell').Controls.Add
    .FaceId = 2950
    .Caption = 'Filtre'
    .OnAction = 'Filtre'
  End With
End Sub

J'ai bien esssayé avec ActiveCell.Filter, mais je souhaiterais pouvoir filtrer quelque soit la colonne, donc sans préciser criteria=...

Je remercie par avance celles et ceux qui se pencheront sur la question et trouveront une solution. :)
 

Apprenti.xls

XLDnaute Nouveau
Bon, bon ...pas de nouvelles, mon message a dû passer à la trappe avec la remontée des nouveaux messages.
Pendant ce temps là,

Finalement, j'y arrive petit à petit, j'ai réussi tout seul comme un grand à faire une petite procédure, mais cela ne me convient pas encore tout à fait... Je vous livre le fruit de ma réflexion :

Dans ThisWorkbook :
__________________________________________________
Private Sub Workbook_Open()
On Error Resume Next
Annule_Clic_Droit_Filtre
clic_droit_filtre
End Sub
__________________________________________________
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Annule_Clic_Droit_Filtre
End Sub

Dans Modules, 4 procédures :

__________________________________________________
Sub Annule_Clic_Droit_Filtre()
Application.CommandBars('Cell').Reset
End Sub
__________________________________________________
Sub clic_droit_filtre()
With Application.CommandBars('Cell').Controls.Add
.FaceId = 2950
.Caption = 'Barre de Filtre'
.OnAction = 'Filtre'
End With
With Application.CommandBars('Cell').Controls.Add
.Caption = 'Filtre'
.OnAction = 'Filtre_Objet'
End With
End Sub
__________________________________________________
Sub Filtre()
On Error Resume Next
Selection.AutoFilter
End Sub
__________________________________________________

et surtout la procédure qui m'intéressait :

Sub Filtre_Objet()
On Error Resume Next
Selection.AutoFilter field:=ActiveCell.Column, Criteria1:=ActiveCell
End Sub


Mais j'en suis moyennement satisfait, car le filtre ne s'opère pas
correctement si la base de données ne commence pas dans la colonne A ...
Par ailleurs, existe-t-il un moyen de séparer les lignes de commande 'Barre de Filtre' et 'Filtre' des autres 'Couper, copier, coller ... lien hypertexte' ? ou bien carrément remplacer les deux dernières existantes (liste de choix et lien hypertexte) par les deux que je souhaite voir apparaître ?

Merci d'avance à ceux qui se pencheront sur le problème et trouveront une
solution.
 

Discussions similaires

Statistiques des forums

Discussions
312 582
Messages
2 089 953
Membres
104 316
dernier inscrit
BNade