Bonjour à tous,
Un souci d'affichage d'un combobox assez étrange : c'est un combobox qui doit afficher la colonne C qui contient le nom des Clients Actifs. Il y a de nombreuses cellules vides entre les clients actifs (qui correspondent aux ancients clients). Je souhaite que la combobox n'affiche pas les blancs.
J'ai utilisé un morceau de code proposé sur le site de Jacquesboisgontier qui permet de faire un filtre automatique pendant que l'on tape le nom du client, cela marche assez bien, sauf que si on commence à taper le nom, puis que l'on efface, alors une fois que le texte est vide, reviennent les blancs. (Normal car j'avais fait un chargement détourné via add item lors de l'initialisation de l'userform, afin de ne pas avoir les blancs justement. Et par la suite à chaque lettre cela revient via la recherche de Jacquesboisgontier).
Donc pour éviter ces blanc j'essaie de lui redire chaque fois que le texte est effacé recharger toute la combobox sans les blancs. Ce qui fonctionne...mais en n'affichant alors le scrollbar et le dropdown que sur une ligne (voir captures d'écran car par écrit c'est un peu confus dsl
). J'ai beau préciser le listrows à 8 ça ne change rien... Je ne comprend vraiment pas d'où cela peut venir... Une idée?
Mercii 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Private Sub ChoixClientsActifs_Change()
If Me.ChoixClientsActifs.ListIndex = -1 And Me.ChoixClientsActifs.Text = "" Then 'Si on efface tout le texte précédemment frappé donc
Me.ChoixClientsActifs.Clear ' vider la combobox
For Each cel In Range("C2:C" & f.[a65000].End(xlUp).Row) 'puis la reremplir avec la colonne c
If cel.Value <> "" And cel.Value <> " " And cel.Value <> " " And cel.Value <> " " Then 'sans les blancs... avec parfois 3 blancs dans la cellule...oui des collègues font ça :p
Me.ChoixClientsActifs.AddItem cel.Value
End If
Next cel
Me.ChoixClientsActifs.ListRows = 8
ElseIf Me.ChoixClientsActifs.ListIndex = -1 And IsError(Application.Match(Me.ChoixClientsActifs, choix1, 0)) Then 'sinon on reprend la recherche intelligente de jacquesboisgontier, qui ne pose pas de problème
Me.ChoixClientsActifs.List = Filter(choix1, Me.ChoixClientsActifs.Text, True, vbTextCompare)
Me.ChoixClientsActifs.DropDown
Else
ChoixClientsActifs_click
End If
End Sub |
Pour info, choix1 est déclaré dans initialize comme ceci :
choix1 = Application.Transpose(f.Range("C2:C" & f.[a65000].End(xlUp).Row).Value)


Merci beaucouuup
Partager