Excel - Filtre automatique sur deux onglets

Fermé
Blueflower - 20 févr. 2012 à 07:41
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 20 févr. 2012 à 16:43
Bonjour,

J'ai un soucis. J'ai deux onglets Excels.
Le premier onglet est une page de garde, il y a une cellule NOM et une cellule Prénom.
Sur ces cellules j'ai mis un filtre (données/validation/liste) pour qu'on ne puisse y entrer n'importe quoi.
Sur le deuxième onglet il y a une base de donnée avec une colonne Nom, une colonne prénom et une colonne Métier et l'ensemble des personnes du service.

J'aimerais que quand l'utilisateur sélectionne un nom et un prénom sur le premier onglet, cela se répercute automatiquement sur le deuxième onglet.

Par Exemple, premier onglet je sélectionne Prénom Jean NOM DUBOIS, Je vais sur le deuxième onglet et je vois une ligne Jean DUBOIS OPERATEUR PRESSES, et une autre Jean DUBOIS OPERATEUR EMBOUTEILLAGE.

Merci pour votre aide !

A voir également:

1 réponse

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 644
Modifié par pilas31 le 20/02/2012 à 16:45
Bonjour,

Voici une solution en VBA:
Dans le deuxième onglet associer le code suivant (clic bouton droit sur le nom de l'onglet puis "visualiser le code" et coller le code de la macro ci dessous)

Private Sub Worksheet_Activate() 
    If Worksheets("Feuil1").Range("A2") <> "" Then 
        Selection.AutoFilter Field:=1, Criteria1:=Worksheets("Feuil1").Range("A2") 
    Else 
        Selection.AutoFilter Field:=1 
    End If 
    If Worksheets("Feuil1").Range("B2") <> "" Then 
        Selection.AutoFilter Field:=2, Criteria1:=Worksheets("Feuil1").Range("B2") 
    Else 
        Selection.AutoFilter Field:=2 
    End If 
End Sub


en préallable il faut positionner un filtre automatique sur les deux colonnes Nom, Prénom de la deuxième feuille (menu Données>Filtrer>Filtre automatique).

Ensuite il faut modifier le code de la macro en considérant que dans mon exemple le prénom se trouve dans le champ A2 de l'onglet "Feuil1" et le nom en "B2". Il faut donc adapter le nom de la feuille et l'emplacement des champs.

Enfin il faut bien vérifier que les champs de tri de la 2° feuille sont bien respectivement le 1 pour le prénom et le 2 pour le nom. Sinon il faut adapter le rang de tri.

Voila.
Ne pas hésiter à revenir si ce n'est pas assez clair.

Une dernière remarque : si les champs sont vides toute la liste s'affiche dans la deuxième feuille ce qui me parait pratique. Bien sur il faut permettre de saisir une valeur vide dans les champs de la première feuille.

Cordialement,
0