Re,
Ton code était déjà tout fait...
If Worksheets("R1").ListObjects("Tableau16").AutoFilter.FilterMode Then
MsgBox "Il y a des données filtrées"
vmeteo = Worksheets("R1").ListObjects("Tableau16").AutoFilter.Filters(1).Criteria1
Rem je filtre le 1er tableau
Worksheets("R1").ListObjects("Tableau815").Range.AutoFilter Field:=1, Criteria1:=vmeteo
Rem je filtre le 2eme tableau
Worksheets("R1").ListObjects("Tableau81316").Range.AutoFilter Field:=1, Criteria1:=vmeteo
Rem je filtre le 3eme tableau
Worksheets("R1").ListObjects("Tableau3814").Range.AutoFilter Field:=1, Criteria1:=vmeteo
ElseIf Not Worksheets("R1").ListObjects("Tableau16").AutoFilter.FilterMode Then
MsgBox "Il n'y a pas de données filtrées"
Worksheets("R1").ListObjects("Tableau815").Range.AutoFilter Field:=1
Worksheets("R1").ListObjects("Tableau81316").Range.AutoFilter Field:=1
Worksheets("R1").ListObjects("Tableau3814").Range.AutoFilter Field:=1
End If
Met ton code dans le "Else" ! D'ailleurs, évite les Activesheets, qui implique les .select, il vaut mieux mentionner directement le nom de la feuille tel que je l'ai fait!
Bonne soirée,
Baboutz