XL 2010 Listebox à trois critères

Hafi.alaoui

XLDnaute Junior
Bonjour
est-il possible de me rectifier un code vba pour filtrer mes données par un userfom à listbox de 3 critères.
mon fichier çi joint
merci
 

Pièces jointes

  • tester.xlsm
    20.4 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour yahya.be, JB,
est-il possible de me rectifier un code vba pour filtrer mes données
La question étant très simple cette macro l'est aussi :
VB:
Private Sub TextBox1_Change()
ThisWorkbook.Names.Add "Crit1", "*" & TextBox1 & "*" 'nom défini
ThisWorkbook.Names.Add "Crit2", "*" & TextBox2 & "*" 'nom défini
ThisWorkbook.Names.Add "Crit3", "*" & TextBox3 & "*" 'nom défini
[M6] = "=COUNTIF(C6,Crit1)*COUNTIF(D6,Crit2)*COUNTIF(E6,Crit3)" 'critère
With Sheets("Liste")
    .UsedRange.Delete xlUp 'RAZ
    [B5].CurrentRegion.AdvancedFilter xlFilterCopy, [M5:M6], .[A1:J1] 'filtre avancé
    [M6] = ""
    With .[A1].CurrentRegion
        If .Rows.Count > 1 Then ListBox1.RowSource = .Offset(1).Resize(.Rows.Count - 1).Address(External:=True) _
            Else ListBox1.RowSource = ""
    End With
End With
End Sub
On utilise la propriété RowSource de la ListBox ce qui permet d'afficher les en-têtes des colonnes.

A+
 

Pièces jointes

  • tester(1).xlsm
    31.3 KB · Affichages: 12

Hafi.alaoui

XLDnaute Junior
Bonjour yahya.be, JB,

La question étant très simple cette macro l'est aussi :
VB:
Private Sub TextBox1_Change()
ThisWorkbook.Names.Add "Crit1", "*" & TextBox1 & "*" 'nom défini
ThisWorkbook.Names.Add "Crit2", "*" & TextBox2 & "*" 'nom défini
ThisWorkbook.Names.Add "Crit3", "*" & TextBox3 & "*" 'nom défini
[M6] = "=COUNTIF(C6,Crit1)*COUNTIF(D6,Crit2)*COUNTIF(E6,Crit3)" 'critère
With Sheets("Liste")
    .UsedRange.Delete xlUp 'RAZ
    [B5].CurrentRegion.AdvancedFilter xlFilterCopy, [M5:M6], .[A1:J1] 'filtre avancé
    [M6] = ""
    With .[A1].CurrentRegion
        If .Rows.Count > 1 Then ListBox1.RowSource = .Offset(1).Resize(.Rows.Count - 1).Address(External:=True) _
            Else ListBox1.RowSource = ""
    End With
End With
End Sub
On utilise la propriété RowSource de la ListBox ce qui permet d'afficher les en-têtes des colonnes.

A+
Bonjour
votre exemple est très pratiquant et facile,je vais l'utiliser
merci beaucoup
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 038
Membres
102 763
dernier inscrit
NICO26