De toutes façons, s'il y a des données filtrées, il va falloir boucler pour savoir quel champ est filtré
For i = 1 To ActiveSheet.AutoFilter.Filters.Count If ActiveSheet.AutoFilter.Filters(i).On Then MsgBox "Le filtre est situé en position " & i End If Next i
Si je comprends ce que tu veux faire, le plus simple et rapide est de supprimer et réactiver le filtre
Ca pourrait faire (à adapter) : Sub filtr() With ActiveSheet If .FilterMode Then 'il y a des donnée filtrées .AutoFilterMode = False .[A1].AutoFilter End If End With End Sub
AV
De toutes façons, s'il y a des données filtrées, il va falloir boucler pour
savoir quel champ est filtré
For i = 1 To ActiveSheet.AutoFilter.Filters.Count
If ActiveSheet.AutoFilter.Filters(i).On Then
MsgBox "Le filtre est situé en position " & i
End If
Next i
Si je comprends ce que tu veux faire, le plus simple et rapide est de supprimer
et réactiver le filtre
Ca pourrait faire (à adapter) :
Sub filtr()
With ActiveSheet
If .FilterMode Then 'il y a des donnée filtrées
.AutoFilterMode = False
.[A1].AutoFilter
End If
End With
End Sub
De toutes façons, s'il y a des données filtrées, il va falloir boucler pour savoir quel champ est filtré
For i = 1 To ActiveSheet.AutoFilter.Filters.Count If ActiveSheet.AutoFilter.Filters(i).On Then MsgBox "Le filtre est situé en position " & i End If Next i
Si je comprends ce que tu veux faire, le plus simple et rapide est de supprimer et réactiver le filtre
Ca pourrait faire (à adapter) : Sub filtr() With ActiveSheet If .FilterMode Then 'il y a des donnée filtrées .AutoFilterMode = False .[A1].AutoFilter End If End With End Sub
AV
Lepaic07
Merci AV !! La 2e solution me conviens tout à fait !
Merci AV !!
La 2e solution me conviens tout à fait !