Bonjour à tous,
je suis en train de réaliser un onglet personnalisé dans le ruban excel pour faciliter le travail de la personne qui l'utilise.
Dans cet onglet, une combobox (cbItem) a été créée avec une liste d'items qui permet de filtrer la colonne Item suivant la valeur sélectionnée. Cette procédure marche très bien.
Seulement si l'utilisateur/rice efface les filtres avec la bouton natif effacer dans l'onglet 'données', alors le fichier n'est plus filtré mais le nom de l'item n'est pas modifié dans la combobox cbItem.
J'aimerais donc pouvoir modifier la commande native qui efface les filtres sur une feuille en lui ajoutant une procédure/fonctionnalité pour affecter la valeur 'tous les items' à la combobox cbItem.
Pour cela, j'ai rajouté ce code (en orange) dans le fichier xml rataché à mon fichier excel :
Est-ce que l'idMso "FilterClearAllFilters" est bien l'id de la commande qui efface les filtres ?
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RubanCharge"> <commands> <command idMso="FilterClearAllFilters" onAction="ModificationEffacerFiltre" /> </commands> <ribbon> <tabs> [...]
j'ai rajouté une procédure dans un module nommé 'ruban' :
ChargeItem est le nom d'une fonctionnalité gettext de la combobox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'Callback for FilterClearAllFilters onAction Sub ModificationEffacerFiltre(control As IRibbonControl, ByRef cancelDefault) If ThisWorkbook.ActiveSheet = "nom_feuille" Then ChargeItem = "tous les items" End If End Sub
nom_feuille est le nom de la feuille dans laquelle les filtres sur les items sont faits.
Merci d'avance pour votre aide,
Cordialement,
Arnaud
un apprenti VBA
Partager