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 44 45 46 47 48 49 50 51 52 53 54 55
|
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim I As Integer
Dim J As Integer
Set Plage = DefPlage(ActiveSheet)
With ListView1
'ligne d'entêtes
For I = 1 To Plage.Columns.Count: .ColumnHeaders.Add , , Plage(1, I).Value, 100: Next I
'
For I = 2 To Plage.Rows.Count
'noms des élèves (je considère que les noms se trouvent en colonne A)
'(début à 2 pour éviter la ligne d'entêtes déjà saisie)
.ListItems.Add , , Plage(I, 1).Value
'les autres champs (début à 2 pour éviter les noms déjà saisis)
For J = 2 To Plage.Columns.Count
.ListItems(.ListItems.Count).ListSubItems.Add , , Plage(I, J).Value
Next J, I
.View = lvwReport
.FullRowSelect = True
.MultiSelect = True 'maintenir la touche Ctrl enfoncée durant la sélection multiple
End With
End Sub
Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range
On Error GoTo Fin
With Fe
Set DefPlage = .Range(.Cells(L, C), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
Exit Function
Fin:
Set DefPlage = Nothing
End Function |
Partager