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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 choix1 = Application.Transpose(f.Range("C2:C" & f.[a65000].End(xlUp).Row).Value)
Nom : combobox affichage normal.png
Affichages : 165
Taille : 4,6 KoNom : combobox affichage bizarre.png
Affichages : 151
Taille : 2,4 Ko

Merci beaucouuup