'un tableau qui va contenire la list original Dim ContenuOriginal() As String Private Sub Combo1_Change() 'fermer la liste deroulante SendKeys ("{ESCAPE}") If Combo1.Text <> "" Then FiltrerCombo Combo1, Combo1.Text Else RetourEtatOriginal ContenuOriginal, Combo1 End If 'ouvrir la liste deroulante SendKeys ("%{up}") Me.Refresh End Sub Private Sub Form_Load() 'Remplissage de la combo For i = 1 To 100 If i <= 30 Then Combo1.AddItem ("a" & i) Else If i <= 60 Then Combo1.AddItem ("b" & i - 30) Else Combo1.AddItem ("c" & i - 60) End If End If Next RemplireListOrigin ContenuOriginal, Combo1 End Sub Sub RemplireListOrigin(ByRef List() As String, ByRef Combo As ComboBox) ReDim List(Combo.ListCount - 1) For i = 0 To Combo.ListCount - 1 List(i) = Combo.List(i) Next End Sub Sub RetourEtatOriginal(ByRef List() As String, ByRef Combo As ComboBox) Combo.Clear For i = 0 To UBound(List) Combo.AddItem (List(i)) Next End Sub 'une sub pour supprimer filtré le contenu de la combo Sub FiltrerCombo(ByRef Combo As ComboBox, ByVal Text As String) If Combo.ListCount > 0 Then Dim i As Integer i = 0 Do If Mid(Combo.List(i), 1, Len(Text)) <> Text Then Combo.RemoveItem (i) i = i - 1 End If i = i + 1 Loop Until Combo.ListCount = i End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question