Conflit entre deux combobox filtrantes

Bonjour à tous,

Depuis le début du week end je cherches à optimiser l'utilisation sur la même feuille de deux combo box filtrantantes(onglet Cal)

j'aimerai que lorsque l'une valeur des listes est sélectionnée le filtre s'active et que l'autre combobox se désélectionne

Voici le code de la première

Private Sub ComboBox1_Change()
On Error Resume Next
Application.ScreenUpdating = False
   ComboBox2.ListIndex = -1
   WsCal.AutoFilterMode = False

   WsCal.Range("Calend").AutoFilter Field:=2, Criteria1:=ComboBox1.ListIndex + 1

End Sub    

et de la seconde

Private Sub ComboBox2_Change()
On Error Resume Next
Application.ScreenUpdating = False
   ComboBox1.ListIndex = -1
   WsCal.AutoFilterMode = False
   WsCal.Range("Calend").AutoFilter Field:=3, Criteria1:=ComboBox2.ListIndex + 1
End Sub

Le "bug" reside dans le fait que si l'on sélectionne une liste toute la page se filtre et il faut reselectionner la valeur pour qu'elle apparaisse.

Si la valeur filtrée pouvait apparaitre du premier coup se serai plus simple

Ci joint le fichier se sera plus parlant !

Si vous avez des idée je suis preneur,

Merci

18bugcbxcal.xlsm (173.26 Ko)

Bonjour,

Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex = -1 Then Exit Sub
    On Error Resume Next
    Application.ScreenUpdating = False
    ComboBox2.ListIndex = -1
    WsCal.ShowAllData
    WsCal.Range("Calend").AutoFilter Field:=2, Criteria1:=ComboBox1.ListIndex + 1
End Sub

Private Sub ComboBox2_Change()
    If ComboBox2.ListIndex = -1 Then Exit Sub
    On Error Resume Next
    Application.ScreenUpdating = False
    ComboBox1.ListIndex = -1
    WsCal.ShowAllData
    WsCal.Range("Calend").AutoFilter Field:=3, Criteria1:=ComboBox2.ListIndex + 1
End Sub

Sub reset()
    Application.ScreenUpdating = False
    ComboBox1.ListIndex = -1
    ComboBox2.ListIndex = -1
    WsCal.ShowAllData
End Sub

Cordialement.

Pff ca me tue

WsCal.ShowAllData

Merci !

Rechercher des sujets similaires à "conflit entre deux combobox filtrantes"