patricktoulon
XLDnaute Barbatruc
bonjour a tous
je l'ai donné sur le forum excel mais je met cette astuce ici aussi
l'avantage de la propriété rowsource d'une listbox c'est que l'on peut avoir plus de 10 colonnes
le désavantage c'est que la liste est immodifiable et elle nous ajoute les entete
je vous propose les avantages sans les inconvénients
voila comment on peut remplir et exploiter une listbox (plus de 10 colonnes)
l'astuce est assez simple
un petit exemple
et voila le beure et l'argent du beurre
demo
a noter que pour le dimensionnement provisoire on peut passer par une variable tableau aussi c'est la même chose
je l'ai donné sur le forum excel mais je met cette astuce ici aussi
l'avantage de la propriété rowsource d'une listbox c'est que l'on peut avoir plus de 10 colonnes
le désavantage c'est que la liste est immodifiable et elle nous ajoute les entete
je vous propose les avantages sans les inconvénients
voila comment on peut remplir et exploiter une listbox (plus de 10 colonnes)
l'astuce est assez simple
un petit exemple
VB:
Private Sub UserForm_Activate()
With ListBox1
.ColumnCount = 15'on dimensionne les colonnes
'--------------------------------------------------
' !!!!!!C EST CA L ASTUCE!!!!!!!!!on la remplie avec une ligne de cellule(15 colonne) et on la vide!!!!!!!!!
.List = Range("A1").Resize(1, .ColumnCount).Value: .Clear
'--------------------------------------------------
'elle est maintenant dimensionnée a 15 colonne et valide pour 15 colonnes MÊME!!!!!! si elle est vide !!!!!!!!!!!!
'maintenant on (((peut)))!!! la remplir normalement avec 2 boucles ligne/colonnes )imbriquées
For i = 0 To 10
.AddItem ""
For c = 0 To 14
.List(i, c) = "Ligne" & i + 1 & " Col" & c + 1
Next
Next
End With
End Sub
demo
a noter que pour le dimensionnement provisoire on peut passer par une variable tableau aussi c'est la même chose
VB:
Private Sub UserForm_Activate()
Dim i As Long, C As Long,tablo
With ListBox1
.ColumnCount = 15
ReDim tablo(1, 15)
.List = tablo: .Clear
For i = 0 To 9
.AddItem ""
For C = 0 To 14
.List(i, C) = "Ligne" & i + 1 & " Col" & C + 1
Next
Next
End With
End Sub
Dernière édition: