Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplir une ListView depuis un tableau

2 réponses
Avatar
Apitos
Bonjour =E0 tous,

J'aimerais bien remplir une ListView depuis un tableau de donn=E9s.

Colonne 1 =3D "Code Article" : Colonne 2 =3D "PrixU"

Et voil=E0 le tableau :

'---------------------------------
Private Sub UserForm_Initialize()
Dim tablo(2, 1)
Dim i As Integer
tablo(0, 0) =3D "Beurre": tablo(0, 1) =3D Format("300", "# ##0.00")
tablo(1, 0) =3D "Bare": tablo(1, 1) =3D Format("1500", "# ##0.00")
tablo(2, 0) =3D "Bureau": tablo(2, 1) =3D Format("7543300", "#
##0.00")
....
End Sub
'------------------------------------

Merci.

2 réponses

Avatar
isabelle
bonjour Apitos,

Private Sub UserForm_Initialize()
Dim tablo(2, 1)
Dim i As Integer
tablo(0, 0) = "Beurre": tablo(0, 1) = Format("300", "# ##0.00")
tablo(1, 0) = "Bare": tablo(1, 1) = Format("1500", "# ##0.00")
tablo(2, 0) = "Bureau": tablo(2, 1) = Format("7543300", "###0.00")

With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "Code Article"
.ColumnHeaders.Add , , "PrixU"
For i = LBound(tablo) To UBound(tablo)
With .ListItems.Add
.Text = tablo(i, 0)
With .ListSubItems.Add
.Text = tablo(i, 1)
End With
End With
Next
End With
End Sub

isabelle

Apitos a écrit :
Bonjour à tous,

J'aimerais bien remplir une ListView depuis un tableau de donnés.

Colonne 1 = "Code Article" : Colonne 2 = "PrixU"

Et voilà le tableau :

'---------------------------------
Private Sub UserForm_Initialize()
Dim tablo(2, 1)
Dim i As Integer
tablo(0, 0) = "Beurre": tablo(0, 1) = Format("300", "# ##0.00")
tablo(1, 0) = "Bare": tablo(1, 1) = Format("1500", "# ##0.00")
tablo(2, 0) = "Bureau": tablo(2, 1) = Format("7543300", "#
##0.00")
....
End Sub
'------------------------------------

Merci.


Avatar
Apitos
Bonjour Isabelle,

Entre temps j'ai essayé ce code.

Ca marche mais il reste quelques retouches à apporter.

NB : Une petite modification : Le tableau est à transposer ! ;)

'----------------------------------
Private Sub UserForm_Initialize()
Dim tablo(1, 3)
Dim i As Integer, tCol As Integer, R As Integer
Titre = Array("Code Articles", "PrixU")
tablo(0, 1) = "Beurre": tablo(1, 1) = Format("300", "# ##0.00")
tablo(0, 2) = "Bare": tablo(1, 2) = Format("1500", "# ##0.00")
tablo(0, 3) = "Bureau": tablo(1, 3) = Format("7543300", "#
##0.00")
'----- Remplissage ListView------------------------
With ListView1
'Définit le nombre de colonnes et Entêtes
With .ColumnHeaders
'Supprime les anciens entêtes
.Clear
'Ajoute 2 colonnes en spécifiant le nom de l'entête
'et la largeur des colonnes
' MsgBox "Ubound(tablo) = " & UBound(tablo)
For tCol = 0 To UBound(tablo) '-- 02 colonnes
' MsgBox "Titre(" & tCol & ") = " & Titre(tCol)
.Add , , Titre(tCol), 40 'ListView1.ColumnHeaders.
Next tCol
End With
'-- Quadrillage à vrai
.Gridlines = True
'-- Remplissage de la ListView
R = 1
' MsgBox "Ubound(tablo) = " & UBound(tablo)
Do Until R > UBound(tablo, 2)
'-- Données
.ListItems.Add , , tablo(0, R)
For iCnt = 1 To UBound(tablo) '2 colonnes
.ListItems(R).ListSubItems.Add , , tablo(iCnt, 1)
.ListItems(R).ListSubItems.Add , , tablo(iCnt, 2)
Next iCnt
R = R + 1
Loop
.View = lvwReport 'affichage en mode "Détails"
.Gridlines = True 'affichage d'un quadrillage
.FullRowSelect = True 'Sélection des lignes complètes
.CheckBoxes = True 'J'en ai besoin pour faire une seule
selection afin d'inserer la ligne sélectionnée dans le feuille
End With
End SubMerci
'----------------------------------

Merci.