1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Private Sub UserForm_Initialize()
'----- remplissage ListView------------------------
With ListView1
'activation de la sélection de ligne entière
.FullRowSelect = True
'activation de l'affichage en colonne
.View = lvwReport
With .ColumnHeaders
'Supprime les anciens entêtes
.Clear
'Ajoute 1 colonne compteur pour créer la structure avec les 10 lignes
.Add , , "compteur", 10
'et la 2ème colonne pour recevoir les premières valeurs
.Add , , "0", 30
End With
'Remplissage de la 1ere colonne (création des 10 lignes de 0 à 9)
For cpt = 0 To 9
With .ListItems
.Add , , cpt
End With
Next
'détermination du nombre de ligne à traiter. Pour faire cet exemple, j'utilise des donnée
'du type A-001 et suivant dans la colonne A
derligne = Range("A65536").End(xlUp).Row
'Remplissage des colonnes
dizaineprécédente = 0
For ligne = 1 To derligne
'on détermine les unité de la lign à créer
unite = Int(Right(Cells(ligne, 1).Value, 1)) + 1
'on détermine les dixaine à traiter
dizaine = Int(Mid(Cells(ligne, 1).Value, 4, 1))
'si on change de dixaine, il fau ajouter une colonne dans le listView et le nommer
If dizaine <> dizaineprécédente Then
.ColumnHeaders.Add , , dixaine, 30
dizaineprécédente = dizaine
End If
'ajout de la ligne en cour de traitement
.ListItems(unite).ListSubItems.Add , , Cells(ligne, 1).Value
Next
End With
End Sub |
Partager