OVH Cloud OVH Cloud

remplir listBox

6 réponses
Avatar
Emcy
Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?

6 réponses

Avatar
michdenis
Bonjour Emcy,

Voici un exemple de code utilisant une colllection
'--------------------------------------
Sub toto()

Dim C As New Collection
Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = Range("A1:A10")
On Error Resume Next
For Each cel In Rg
C.Add cel, cel.Text
Next
.ListBox1.Clear
For a = 1 To C.Count
.ListBox1.AddItem C(a)
Next
End With

End Sub
'--------------------------------------


Salutations!


"Emcy" a écrit dans le message de news:
Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?
Avatar
Emcy
je ne comprend pas tout

voici mon code, qu'est-ce qui ne va pas ?

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

ListBox1.Clear

For Each Element In MaCollection2
ListBox1.AddItem Element
Next Element

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Voici un exemple de code utilisant une colllection
'--------------------------------------
Sub toto()

Dim C As New Collection
Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = Range("A1:A10")
On Error Resume Next
For Each cel In Rg
C.Add cel, cel.Text
Next
.ListBox1.Clear
For a = 1 To C.Count
.ListBox1.AddItem C(a)
Next
End With

End Sub
'--------------------------------------


Salutations!


"Emcy" a écrit dans le message de news:

Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?





Avatar
michdenis
Bonjour Emcy,

Essaie de cette façon :

'-------------------------
Dim MaCollection1 As New Collection

MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"

'Feuil1 = Nom de la feuille (codename pas onglet)
'où est situé ta listbox

Feuil1.ListBox1.Clear
For a = 1 To MaCollection1.Count
Feuil1.ListBox1.AddItem MaCollection1(a)
Next
'-------------------------



Salutations!



"Emcy" a écrit dans le message de news:
je ne comprend pas tout

voici mon code, qu'est-ce qui ne va pas ?

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

ListBox1.Clear

For Each Element In MaCollection2
ListBox1.AddItem Element
Next Element

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Voici un exemple de code utilisant une colllection
'--------------------------------------
Sub toto()

Dim C As New Collection
Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = Range("A1:A10")
On Error Resume Next
For Each cel In Rg
C.Add cel, cel.Text
Next
.ListBox1.Clear
For a = 1 To C.Count
.ListBox1.AddItem C(a)
Next
End With

End Sub
'--------------------------------------


Salutations!


"Emcy" a écrit dans le message de news:

Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?





Avatar
Emcy
non ça ne marche pas

=> j'ai le message : type incompatible
pouratant l'attribut columncount de ma listbox est bien egal à 3

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Essaie de cette façon :

'-------------------------
Dim MaCollection1 As New Collection

MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"

'Feuil1 = Nom de la feuille (codename pas onglet)
'où est situé ta listbox

Feuil1.ListBox1.Clear
For a = 1 To MaCollection1.Count
Feuil1.ListBox1.AddItem MaCollection1(a)
Next
'-------------------------



Salutations!



"Emcy" a écrit dans le message de news:

je ne comprend pas tout

voici mon code, qu'est-ce qui ne va pas ?

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

ListBox1.Clear

For Each Element In MaCollection2
ListBox1.AddItem Element
Next Element

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Voici un exemple de code utilisant une colllection
'--------------------------------------
Sub toto()

Dim C As New Collection
Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = Range("A1:A10")
On Error Resume Next
For Each cel In Rg
C.Add cel, cel.Text
Next
.ListBox1.Clear
For a = 1 To C.Count
.ListBox1.AddItem C(a)
Next
End With

End Sub
'--------------------------------------


Salutations!


"Emcy" a écrit dans le message de news:

Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?










Avatar
michdenis
Bonjour Emcy,

Si tu veux remplir une listbox qui a plusieurs colonnes :

'-----------------------------------
Dim MaCollection1 As New Collection

MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"

With Worksheets("Feuil1").ListBox1
.ColumnCount = 3
.ColumnWidths = "30;30;30"
.Clear
For a = 1 To MaCollection1.Count
.AddItem MaCollection1(a)
.List(a - 1, 1) = MaCollection1(a + 1)
.List(a - 1, 2) = MaCollection1(a + 2)
a = a + 2
Next
End With
'-----------------------------------

P.S. Dans ce type de cas, l'usage de l'objet "Collection" est douteux ! Cet objet est utilise lorsqu'il s'agit par exemple d'éviter
d'ajouter des doublons à une liste. Le deuxième argument (La clé - voir l'aide d'excel sur le sujet ) le permet... mais dans ton
cas, l'usage d'un tableau serait plus adapter.

Un exemple de code :
'------------------------------
Dim Tblo()
Dim NbItemLignes As Long
Dim NbItemsColonnes As Integer

NbItemLignes = 5
NbItemsColonnes = 3

ReDim Tblo(1 To NbItemLignes, 1 To NbItemsColonnes)
Tblo(1, 1) = "toto"
Tblo(1, 2) = "tata"
Tblo(1, 3) = "titi"

Tblo(2, 1) = "aaaa"
Tblo(2, 2) = "bbbb"
Tblo(2, 3) = "cccc"

'And so on ...

With Worksheets("Feuil1").ListBox1
.ColumnCount = 3
.ColumnWidths = "30;30;30"
.Clear
.List = Tblo
End With
'------------------------------


Salutations!



"Emcy" a écrit dans le message de news:
non ça ne marche pas

=> j'ai le message : type incompatible
pouratant l'attribut columncount de ma listbox est bien egal à 3

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Essaie de cette façon :

'-------------------------
Dim MaCollection1 As New Collection

MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"

'Feuil1 = Nom de la feuille (codename pas onglet)
'où est situé ta listbox

Feuil1.ListBox1.Clear
For a = 1 To MaCollection1.Count
Feuil1.ListBox1.AddItem MaCollection1(a)
Next
'-------------------------



Salutations!



"Emcy" a écrit dans le message de news:

je ne comprend pas tout

voici mon code, qu'est-ce qui ne va pas ?

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

ListBox1.Clear

For Each Element In MaCollection2
ListBox1.AddItem Element
Next Element

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Voici un exemple de code utilisant une colllection
'--------------------------------------
Sub toto()

Dim C As New Collection
Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = Range("A1:A10")
On Error Resume Next
For Each cel In Rg
C.Add cel, cel.Text
Next
.ListBox1.Clear
For a = 1 To C.Count
.ListBox1.AddItem C(a)
Next
End With

End Sub
'--------------------------------------


Salutations!


"Emcy" a écrit dans le message de news:

Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?










Avatar
Emcy
merci

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Si tu veux remplir une listbox qui a plusieurs colonnes :

'-----------------------------------
Dim MaCollection1 As New Collection

MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"

With Worksheets("Feuil1").ListBox1
.ColumnCount = 3
.ColumnWidths = "30;30;30"
.Clear
For a = 1 To MaCollection1.Count
.AddItem MaCollection1(a)
.List(a - 1, 1) = MaCollection1(a + 1)
.List(a - 1, 2) = MaCollection1(a + 2)
a = a + 2
Next
End With
'-----------------------------------

P.S. Dans ce type de cas, l'usage de l'objet "Collection" est douteux !
Cet objet est utilise lorsqu'il s'agit par exemple d'éviter
d'ajouter des doublons à une liste. Le deuxième argument (La clé - voir
l'aide d'excel sur le sujet ) le permet... mais dans ton
cas, l'usage d'un tableau serait plus adapter.

Un exemple de code :
'------------------------------
Dim Tblo()
Dim NbItemLignes As Long
Dim NbItemsColonnes As Integer

NbItemLignes = 5
NbItemsColonnes = 3

ReDim Tblo(1 To NbItemLignes, 1 To NbItemsColonnes)
Tblo(1, 1) = "toto"
Tblo(1, 2) = "tata"
Tblo(1, 3) = "titi"

Tblo(2, 1) = "aaaa"
Tblo(2, 2) = "bbbb"
Tblo(2, 3) = "cccc"

'And so on ...

With Worksheets("Feuil1").ListBox1
.ColumnCount = 3
.ColumnWidths = "30;30;30"
.Clear
.List = Tblo
End With
'------------------------------


Salutations!



"Emcy" a écrit dans le message de news:

non ça ne marche pas

=> j'ai le message : type incompatible
pouratant l'attribut columncount de ma listbox est bien egal à 3

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Essaie de cette façon :

'-------------------------
Dim MaCollection1 As New Collection

MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"

'Feuil1 = Nom de la feuille (codename pas onglet)
'où est situé ta listbox

Feuil1.ListBox1.Clear
For a = 1 To MaCollection1.Count
Feuil1.ListBox1.AddItem MaCollection1(a)
Next
'-------------------------



Salutations!



"Emcy" a écrit dans le message de news:

je ne comprend pas tout

voici mon code, qu'est-ce qui ne va pas ?

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

Set MaCollection1 = New Collection
MaCollection1.Add "toto"
MaCollection1.Add "tata"
MaCollection1.Add "titi"
MaCollection2.Add MaCollection1

ListBox1.Clear

For Each Element In MaCollection2
ListBox1.AddItem Element
Next Element

"michdenis" a écrit dans le message de news:

Bonjour Emcy,

Voici un exemple de code utilisant une colllection
'--------------------------------------
Sub toto()

Dim C As New Collection
Dim Rg As Range

With Worksheets("Feuil1")
Set Rg = Range("A1:A10")
On Error Resume Next
For Each cel In Rg
C.Add cel, cel.Text
Next
.ListBox1.Clear
For a = 1 To C.Count
.ListBox1.AddItem C(a)
Next
End With

End Sub
'--------------------------------------


Salutations!


"Emcy" a écrit dans le message de news:

Bonjours,

voila comment je crée ma collection
Dim MaLigne As Collection
Dim MaCollection As New Collection

Set MaLigne = New Collection
MaLigne.Add "tata"
MaLigne.Add "yoyo"
MaCollection.Add MaLigne

Set MaLigne = New Collection
MaLigne.Add "titi"
MaLigne.Add "caca"
MaCollection.Add MaLigne

comment faire mettre MaCollection dans une ListBox ?