Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2011, 10h13   #1
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : novembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : novembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Surcharger la commande native "effacer filtre" de VBA

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 :
Code xml :
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>
			[...]
Est-ce que l'idMso "FilterClearAllFilters" est bien l'id de la commande qui efface les filtres ?

j'ai rajouté une procédure dans un module nommé 'ruban' :
Code :
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
ChargeItem est le nom d'une fonctionnalité gettext de la combobox.
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
ArnaudTh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h45.


 
 
 
 
Partenaires

Hébergement Web