Au moment où je tape dans la zone de texte, mes lignes sont masquées et ne reviennent pas après avoir effacé la zone de texte. J'ai utilisé le même code exact sur une table précédente dans une feuille différente et cela a fonctionné parfaitement. Je pense que l'erreur vient du fait que j'ai copié et collé la table entière dans une feuille différente et que j'ai peaufiné le code de la nouvelle table. J'ai vérifié la cellule liée et je me suis assuré de changer le nom de la table. Qu'est-ce que je rate?

Private Sub TextBox1_Change()

Application.ScreenUpdating = False

ActiveSheet.ListObjects("Customers").Range.AutoFilter Field:=1, Criteria1:=[C2] & "*", Operator:=xlFilterValues

Application.ScreenUpdating = True

End Sub
0
Alex 8 mars 2021 à 13:48

1 réponse

Meilleure réponse

Essayez ce code, s'il vous plaît. Il utilisera l'événement DblClick. Sinon, l'événement Change sera déclenché par n'importe quel caractère saisi. Maintenant, après avoir défini les critères de filtre dans la zone de texte, vous devez double-cliquer à l'intérieur :

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean
 Dim Tb As ListObject

 Set Tb = ActiveSheet.ListObjects("Customers")
 Application.ScreenUpdating = False
  If TextBox1.Text = "" Then
    Tb.AutoFilter.ShowAllData
  Else
    Tb.Range.AutoFilter field:=1, Criteria1:=CStr([C2]), Operator:=xlFilterValues
  End If
 Application.ScreenUpdating = True
End Sub
1
FaneDuru 8 mars 2021 à 12:46