Aller au contenu principal

Ajouter un filtre de recherche sur une table

filtre 1Bonjour à tous,

Voici comment ajouter très rapidement un filtre de recherche à une table.

Vous pouvez utiliser le filtre classique d'Excel, mais cela requiert plusieurs clics.

Voici une solution plus rapide en ajoutant une textbox.

A bientôt.

Gaetan

10 commentaires

  1. Bonjour,
    Merci pour cette astuce très utile !
    Sous Excel 2010, la taille du texte à taper dans le Texbox devient de plus en plus petite, et ce même en modifiant la taille de la police dans propriété du Texbox.
    "Que faire ?", disait déjà Lénine ? !
    Pg

  2. Bonjour Gaetan : Un grand merci pour cette astuce trés pratique .
    Est'il possible de faire la même chose avec des chiffres ?
    Ceci me serait utile car je posséde une liste de plus de 10600 numéros.

  3. quand je veux insérer le TextBox
    j'ai le message suivant : "Impossible d'insérer un objet"
    J'ai bien créé un tableau

  4. Vu de loin, ça a l'air d'un gadget, mais en réalité c'est super utile et ça fait gagner un temps fou dans pas mal de cas.

    Merci pour cette astuce.

  5. Claude, merci beaucoup et effectivement c'est très utile !

    Patrick, oui a priori, pas de problème, je vais poster un exemple dans la prochaine newsletter

    Paramelle, c'est un problème de mise à jour de windows.
    Voir ici pour la procédure : http://forums.cnetfrance.fr/topic/1244503-impossible-d-inserer-un-objet-activex-dans-word-ou-excel-suite-a-une-mise-a-jour-automatique-windows/

    Gaspard, je ne sais pas bien. D'après mes recherches, cela semble venir d'un problème de résolution d'écran ou d'utilisation de vidéoprojecteur. Est ce votre cas?

    A bientôt

    Gaetan

  6. Bonjour Patrick,

    Voici une solution possible.
    Je ne suis pas très satisfait de la vitesse, mais l'utilisation des filtres ne semble pas être possible ici 🙁

    Private Sub TextBox1_Change()
    Dim st As Integer
    Dim r As Range
    'on affiche tout
    Application.ScreenUpdating = False
    ActiveSheet.UsedRange.EntireRow.Hidden = False
    For Each r In Range("b2:b" & ActiveSheet.UsedRange.Rows.Count)
    st = (InStr(1, r.Text, TextBox1.Value) = 0)
    If st Then
    r.EntireRow.Hidden = True
    End If
    Next r
    Application.ScreenUpdating = True
    End Sub

    A bientôt.

    Gaetan

  7. Bonjour Gaëtan : Je viens de faire le test. J'ai un message Erreur de compilation
    Erreur de syntaxe à la ligne ‘on affiche tout et là la ligne For Each r In Range(« b2:b » & ActiveSheet.UsedRange.Rows.Count)
    Par avance merci pour votre aide.
    Dans le cas ou cela ne fonctionne pas ce n'est pas très grave je vais continuer à utiliser le filtre comme il se doit.

  8. Faites bien attention aux guillemets en recopiant le code, ca pourrait venir de là.

  9. Bonsoir Gaëtan : Merci pour l'information le fait de mettre la macro sur internet modifie les guillemets et rajoute un espace après le guillemets
    Merci pour l'info ceci fonctionne.
    Effectivement pour une petite liste peu complexe la rapidité est au rendez vous, mais pour des listes plus complexe ceci rallonge le temps de calcul comme vous l'avez signalé plus haut. j'ai fait le test avec des nombres à 5 chiffres Ex ( 1024563 )
    Ceci reste néanmoins intéressant
    A bientôt et encore merci pour ce que vous nous faites partager

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


La période de vérification reCAPTCHA a expiré. Veuillez recharger la page.

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.