Private Sub UserForm_Initialize()
Dim Feuilles() As Variant, Tablo() As Variant
Dim Cel As Range
Dim i As Integer, j As Integer
' *** Creation du tableau qui servira à construire le listview
'Listes des feuilles à compiler
Feuilles = Array("Alain", "Bruno")
ReDim Tablo(1 To 3, 1 To 1) 'initialisation du tablo, 1re ligne sera vide
'Creation du tablo à partir de la premiere feuille
Set Cel = Sheets(Feuilles(0)).Range("B2")
Do Until IsEmpty(Cel) 'on suppose qu'il n'y a pas de lignes vides
ReDim Preserve Tablo(1 To 3, 1 To UBound(Tablo, 2) + 1)
Tablo(1, UBound(Tablo, 2)) = Cel
Tablo(2, UBound(Tablo, 2)) = Cel.Offset(0, 1)
Tablo(3, UBound(Tablo, 2)) = Cel.Offset(0, 2)
Set Cel = Cel.Offset(1, 0)
Loop
'On concatenete le texte des colonnes 2 et 3
For i = LBound(Feuilles) + 1 To UBound(Feuilles)
Set Cel = Sheets(Feuilles(i)).Range("B2")
j = 2
Do Until IsEmpty(Cel)
Tablo(2, j) = Tablo(2, j) & Cel.Offset(0, 1)
Tablo(3, j) = Tablo(3, j) & Cel.Offset(0, 2)
Set Cel = Cel.Offset(1, 0)
j = j + 1
Loop
Next i
'On cree le listview à partir du tableau
With Me.ListView1
With .ColumnHeaders
.Clear
.Add , , "Numéro", 60
.Add , , "CAT A", 45
.Add , , "CAT B", 45
End With
'------------------------Paramétre les détails du tableau
.View = 3
.Gridlines = True
.FullRowSelect = True
.HideColumnHeaders = False
.LabelEdit = 1
End With
For i = 2 To UBound(Tablo, 2) 'début à 2 car 1re ligne est vide
With ListView1
.ListItems.Add , , Tablo(1, i)
.ListItems(.ListItems.Count).ListSubItems.Add , , Tablo(2, i)
.ListItems(.ListItems.Count).ListSubItems.Add , , Tablo(3, i)
End With
Next i
End Sub