Filtre avancé dans Formulaire à partir de 2 textbox

Backhandshot

XLDnaute Occasionnel
Bonjour à tous ! J'aimerais effectuer un filtre sur ma liste de noms en respectant un minimum et maximum à partir de 2 textbox. Je ne sais pas ce qui ne fonctionne pas sur mon filtre ou mes critères ne sont pas définis comme il le faut. Il faudrait aussi que le filtre se fasse de la plus grande valeur à la plus petite valeur. Je joins mon fichier. Votre aide serait appréciée. Merci !
 

Pièces jointes

  • Textbox_Filtre.xlsm
    74.7 KB · Affichages: 25

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Filtre avancé dans Formulaire à partir de 2 textbox

Bonsoir Backhandshot,

Avec ce code ? :
VB:
Private Sub CommandButton1_Click()
Dim critInf&, critSup&
  With Worksheets("Home").Range("a10").CurrentRegion
    .Sort Key1:=Range("j10"), order1:=xlDescending, Header:=xlYes
    On Error Resume Next
    critInf = Replace(TextBox1, ".", Application.DecimalSeparator)
    critInf = CLng(Replace(critInf, ",", Application.DecimalSeparator))
    critSup = Replace(TextBox2, ".", Application.DecimalSeparator)
    critSup = CLng(Replace(critSup, ",", Application.DecimalSeparator))
    If Not Err Then
      TextBox1 = critInf: TextBox2 = critSup
      .AutoFilter Field:=10, Criteria1:=">=" & IIf(critInf < critSup, critInf, critSup), _
      Operator:=xlAnd, Criteria2:="<=" & IIf(critInf < critSup, critSup, critInf)
    End If
    Application.Goto ActiveSheet.Range("a1"), True
  End With
  CommandButton1.ForeColor = RGB(0, 0, 0)
End Sub

Private Sub TextBox1_Change()
  CommandButton1.ForeColor = RGB(255, 0, 0)
End Sub

Private Sub TextBox2_Change()
  CommandButton1.ForeColor = RGB(255, 0, 0)
End Sub
 

Pièces jointes

  • Backhandshot-Textbox_Filtre-v1.xlsm
    82.5 KB · Affichages: 30
Dernière édition:

Backhandshot

XLDnaute Occasionnel
Re : Filtre avancé dans Formulaire à partir de 2 textbox

Bonjour MaPomme et tout le forum !
Le filtre fonctionne très bien. Beau travail ! J'aurais une autre question si je veux me servir de décimale quel est le code à remplacer ? Exemple trier de ,750 à 1,297 Merci encore pour la réponse rapide MaPomme.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Filtre avancé dans Formulaire à partir de 2 textbox

Bonsoir Backhandshot,

(...) J'aurais une autre question si je veux me servir de décimale quel est le code à remplacer ? Exemple trier de ,750 à 1,297 (...)
Voir le fichier joint (modif. dans Private Sub CommandButton1_Click() ).

nb: dans les TextBox, on peut utiliser, soit le point, soit la virgule comme séparateur décimal

nota : les bornes inf. et sup. peuvent être saisies indifféremment dans TextBox1 ou dans TextBox2. Elles sont automatiquement remises dans les bons champs TextBox 1 ou 2.
 

Pièces jointes

  • Backhandshot-Textbox_Filtre-v2.xlsm
    84.5 KB · Affichages: 36
Dernière édition:

Backhandshot

XLDnaute Occasionnel
Re : RÉSOLU Filtre avancé dans Formulaire à partir de 2 textbox

Bonsoir MaPomme et le forum ! Tout fonctionne NICKEL merci beaucoup pour votre aide précieuse. Je ne pensais pas que c'était si compliqué pour changer en décimale, j'aurais pensé qu'il fallait seulement changé le format avec des ### ou .000 ou quelque chose du genre...En vous remerciant encore.Merci beaucoup !
 

Discussions similaires

Réponses
12
Affichages
330

Statistiques des forums

Discussions
312 310
Messages
2 087 128
Membres
103 479
dernier inscrit
Compta