XL 2013 Hauteur ligne listbox

CGU2022.

XLDnaute Junior
Bonjour
Mon problème du jour : je souhaite avoir dans la listbox le texte entier d'une cellule et non cela:

1667932226607.png


qui se met que sur une seule ligne avec une hauteur standard
Avez vous une idée ?

dans les propriétés de la liste box ?
ou dans le code
C'est un userform de recherche


Option Compare Text
Dim f, choix(), Rng, Ncol


Private Sub UserForm_Initialize()
Set f = ActiveSheet
Set Rng = f.range("b17:L" & f.[a65000].End(xlUp).Row)
decal = Rng.Row - 1
Ncol = Rng.Columns.Count
TblTmp = Rng.Value
Ncol = Rng.Columns.Count - 1
ReDim choix(1 To UBound(TblTmp))
For i = LBound(TblTmp) To UBound(TblTmp)
TblTmp(i, Ncol + 1) = i + decal
For k = 1 To Ncol
choix(i) = choix(i) & TblTmp(i, k) & "|"
Next k
choix(i) = choix(i) & (i + decal) & "|"
Next i
'Call Tri(TblTmp, 1, LBound(TblTmp), UBound(TblTmp))
Me.ListBox1.List = TblTmp
End Sub

Private Sub TextBoxRech_Change()
If Me.TextBoxRech <> "" Then
mots = Split(Trim(Me.TextBoxRech), " ")
Tbl = choix
For i = LBound(mots) To UBound(mots)
Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
Next i
n = 0: Dim b()
For i = LBound(Tbl) To UBound(Tbl)
a = Split(Tbl(i), "|")
n = n + 1: ReDim Preserve b(1 To Ncol + 1, 1 To n)
For k = 1 To Ncol
b(k, i + 1) = a(k - 1)
Next k
b(k, i + 1) = a(k - 1)
Next i
If n > 0 Then
ReDim Preserve b(1 To Ncol + 1, 1 To n + 1)
Me.ListBox1.List = Application.Transpose(b)
Me.ListBox1.RemoveItem n
End If
Else
UserForm_Initialize
End If
End Sub


Cdt...


1667932444124.png


j'ai un autre problème je doit partir de la colonne B
Set Rng = f.range("b17:L" & f.[a65000].End(xlUp).Row)
car dans la colone A j 'ai des cellules vide et cela plante à Me.ListBox1.List = Application.Transpose(b)


Cdt....
 

Pièces jointes

  • 1667932193633.png
    1667932193633.png
    2 KB · Affichages: 30

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour CGU,
Je ne pense pas qu'il soit possible directement de remplir une Listbox avec ce genre de chaine en conservant la mise en forme de la cellule.
Le plus simple étant, je pense, de la remplir à partir d'un tableau splitté, le séparateur ayant le code 10.
VB:
Sub RemplirListbox()
    Tablo = Split([C13], Chr(10))
    For i = 0 To UBound(Tablo)
        UserForm1.ListBox1.AddItem Tablo(i)
    Next i
    UserForm1.Show
End Sub
Voir PJ
 

Pièces jointes

  • CGU.xlsm
    16.7 KB · Affichages: 9

Discussions similaires

Réponses
3
Affichages
737

Statistiques des forums

Discussions
315 093
Messages
2 116 130
Membres
112 667
dernier inscrit
foyoman