Passer au contenu

Comment réinitialiser une liste filtrée en VBA ?

Solution : en utilisant Selection.Autofilter.

Vous avez probablement remarqué que lorsque vous exploitez les filtres d’Excel 97, vous devez sélectionner chaque fois l’intégralité de la plage de cellules avant d’appliquer un filtre. Il existe une solution pour contourner ce problème : exploiter la commande Selection.Autofilter dans un programme en VBA, le langage de programmation intégré au tableur. Pour vous en convaincre, il suffit de réaliser un court programme qui permet d’afficher uniquement les cellules contenant un nombre.Appuyez sur la combinaison de touches + afin d’afficher l’éditeur Visual Basic. Dans le menu Insertion, choisissez la commande Module. Recopiez le listing suivant. Quittez l’éditeur en pressant simultanément les touches +. Dans Excel, sélectionnez un bloc de cellules contenant au moins deux nombres identiques.Dans le menu Outils, optez pour Macro, puis pour Macros. Dans la fenêtre qui s’affiche, sélectionnez TrouverNombre et validez par un clic sur le bouton [exécuter]. Saisissez un des nombres contenus dans la plage de cellules sélectionnée et appuyez sur la touche . Recommencez la manipulation avec un autre nombre. Vous constaterez que vous n’avez plus besoin de sélectionner à nouveau le bloc de cellules.Listing :
Sub TrouverNombre()
Dim Nb As Variant
If ActiveSheet.AutoFilterMode Then Selection.AutoFilter
Nb = InputBox(“Saisissez un nombre ?”, “Filtre”)
While Not IsNumeric(Nb)
MsgBox “Le critère que vous avez saisi nest pas un nombre, recommencez”
Nb = InputBox(“Saisissez un nombre ?”, “Filtre”)
Wend
Selection.AutoFilter Field:=1, Criteria1:=Nb, Operator:=xlAnd
End Sub

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Filigrane Press