Bonsoir à tous et merci,
Je vais essayer d'expliciter le code de la feuille 1 :
'En code général de la feuille 1, on déclare une variable pour la comparer au contenu de la cellule B1 :
Dim Temp As String
'Initialisation de la variable Temp au démarrage de la Feuille 1
Private Sub Worksheet_Activate()
Temp = Range("B1")
End Sub
'On interroge l'évènement Calculate de la feuille 1 pour vérifier la valeur de B1
'En effet, B1 devient différent de notre variable Temp lorsque qu'un calcul est effectué en application de sa formule =RECHERCHE.
'Donc, lorsque B1 a changé, il nous faut passer l'info aux feuilles 2 à 6
'Sachant que toutes les feuilles d'un classeur appartiennent à l'objet WorkSheets,
'une boucle For Each...Next permet de visiter chacune des feuilles pour
'leur passer ST (Contenu de B1 dans la feuille 1) pour actionner leurs filtres.
Private Sub Worksheet_Calculate()
If Range("B1") <> Temp Then
Dim ST As String
Dim WS As Worksheet
ST = Feuil1.Range("B1")
For Each WS In Worksheets
If WS.Name <> "Feuil1" Then
WS.Range("A5").AutoFilter Field:=1, Criteria1:=ST
End If
Next
Temp = Range("B1")
End If
End Sub
'Enfin, on réinitialise la variable Temp avec la nouvelle valeur de B1 et l'on
'reste dans l'attente d'un nouvel évènement Calculate susceptible de changer le filtre.
A bientôt pour de nouvelles aventures !
LN