Re,
Tu as tout à fait raison effectivement
Voici le code, qui fonctionnera beaucoup mieux
Private Sub CommandButton2_Click()
Dim Ind As Integer, dLig As Long, sCrit As String
Dim TabCol As Variant, NumCol As Long
' Liste des colonnes à prendre en compte
TabCol = Split("A,B,G,H,I,J,K,R,T", ",")
' Avec la feuille active
With ActiveSheet
' Définir la plage à traiter
Set Rng = .Range("A6").CurrentRegion
' Déplacer la plage d'une ligne vers le bas et la redimensionner
Set Rng = Rng.Resize(Rng.Rows.Count - 1, Rng.Columns.Count).Offset(1, 0)
' Suis l'ordre des TextBox
For Ind = 1 To 9
' Préparer le critère de filtre
sCrit = ""
' Si le TextBox contient une valeur
If Me.Controls("Textbox" & Ind) <> "" Then
' Définir le numéro de colonen à traiter
NumCol = Range(TabCol(Ind - 1) & "1").Column
' Critère de filtre
sCrit = Me.Controls("Textbox" & Ind).Value
' Appliquer le filtre à la colonne
Rng.AutoFilter Field:=NumCol, Criteria1:=sCrit
End If
Next Ind
End With
End Sub
A tester