Alternative fonction FILTRE sur Excel 2016 à partir d’une liste déroulante

Bonjour à tous, j’ai un petit soucis que je vais vous exposer.

J’ai réaliser un fichier qui filtre une base de données suivant une liste déroulante. Je m’explique, par exemple prenons plusieures classes où il y a différents élèves, la base de données comporte tout les élèves des différentes classes. J’ai une liste déroulante ( sur une autre page ) avec le choix des classes et ça m’affiche les élèves présent uniquement dans cette classe ( en utilisant la fonction FILTRE )

Le probleme est que sur l’ordinateur du travail, la version est Excel 2016 et donc la fonction FILTRE n’y est pas présente, j’aimerais avoir une alternative pour obtenir le même résultat.

Merci d’avance pour vos réponses

Bonjour,

Pouvez-vous joindre le fichier ? Merci.

On peut contourner avec INDEX+EQUIV et en jouant sur les numéros de ligne, ou une UDF (fonction VBA) comme vous préférez.

Mettez à jour votre/vos version(s) d'Excel dans votre profil svp. Comme vous le voyez c'est fondamental pour comprendre quelles fonctions sont à votre disposition.

Bonjour

Il faut probablement passer par un code VBA qui utilise la donnée dans la liste déroulante

Merci de mettre votre fichier en ligne sans données sensibles.

NB : mentionnez votre version excel dans votre profil de compte. Si vous êtes sous MAC ajoutez le à coté de votre version excel (MAC 2016, ...)

Cordialement

Edit : oups Saboh, nos messages se sont croisés...

Merci pour votre réponse, je vous mets un exemple ici ( car données sensibles dans l'original ) Je l'ai réalisé sur mon ordinateur avec Microsoft 365, mais il doit être fonctionnel sur Excel 2016 ( Ordinateur du travail )

12exemple-1.xlsx (12.06 Ko)

un essai,

10exemple-1-4.xlsx (15.76 Ko)

re

Pas sûr que cela serve à quelque chose mais bon, faites comme ceci :

- Clic droite sur le nom de l'onglet Filtre
- choisir l'option "Visualiser le code"
- coller le code ci-dessous dans la fenêtre

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C4")) Is Nothing Then
    Range("B7:E" & Range("B" & Rows.Count).End(xlUp).Row + 1).ClearContents
    With Sheets("Base de données")
        Set plage = .Range("B3:F" & .Range("B" & Rows.Count).End(xlUp).Row)
        If .AutoFilterMode = False Then .Range("B2").AutoFilter
        On Error Resume Next
        .ShowAllData
        On Error GoTo 0
        plage.AutoFilter Field:=5, Criteria1:=Range("C4"), Operator:=xlAnd
       .Range("B3:E" & .Range("B" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy Range("B7")
    End With
End If
End Sub

- enregistrez le fichier au format XLSM (pour accepter les macro)

Pour le test, faite le choix dans votre cellule C4 de la feuille Filtre

Attention aux cellules fusionnées avec la programmation VBA car il aime pas trop. Donc défusionnez la cellule c'est mieux.

si ok et terminé pensez à cloturer le fil

Crdlt

Merci pour vos réponses

BsAlv, cela fonctionne je l’ai modifier un peu pour qu’il corresponde avec mon fichier original mais tout marche correctement.

Merci à vous,

Rechercher des sujets similaires à "alternative fonction filtre 2016 partir liste deroulante"