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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim i As Integer
Dim rg As Range
Dim j As Integer
Set ws = ThisWorkbook.Sheets("Feuil1")
Set rg = ws.Range("refTab") 'cellule de référence du tableau
' -- Construction du tableau
With UsfMenu.Listview1
' -- Ajout des colonnes
.ColumnHeaders.Clear ' Effacer les entêtes existantes
'on boucle sur les éléments tant qu'on ne trouve pas de lignes vides
i = 0
Do Until IsEmpty(rg.Offset(0, i))
.ColumnHeaders.Add , rg.Offset(-1, i), rg.Offset(0, i), rg.Offset(0, i).Width
i = i + 1
Loop
' -- Ajouter les éléments de la 1re colonne
i = 1
Do Until IsEmpty(rg.Offset(i, 0))
.ListItems.Add , rg.Offset(i, 0), rg.Offset(i, 0)
' -- Ajouter les sous-éléments
' on utilise ici une boucle en supposant qu'il n'y a pas de lignes vides entre les éléments
j = 1
Do Until IsEmpty(rg.Offset(0, j))
'Ajouter un sous-élément en spéciant la valeur seulement
.ListItems(i).ListSubItems.Add , , rg.Offset(i, j)
j = j + 1
Loop
i = i + 1
Loop
.View = lvwReport
.Sorted = True ' trier selon N°
End With
'photo dans la listview (nommer obligatoirement les photos par le nom de l'adhérent)
Set f = Sheets("Feuil1")
Me.ImageList1.ImageHeight = 30
Me.ImageList1.ImageWidth = 30 '/ 1.2
répertoirePhoto = ThisWorkbook.Path & "\"
ligne = 1
For Each c In f.Range("C3:C" & f.[C65000].End(xlUp).Row)
If Dir(répertoirePhoto & c & ".jpg") <> "" Then
Me.ImageList1.ListImages.Add , "Img" & ligne, LoadPicture(répertoirePhoto & c & ".jpg")
Set Me.Listview1.SmallIcons = Me.ImageList1
Set li = Me.Listview1.ListItems(ligne)
li.SubItems(7) = "" 'cree une instance subitem 1 si il est omis listsubitem fonctionne pas
li.ListSubItems(7).ReportIcon = "Img" & ligne
End If
ligne = ligne + 1
Next c
End Sub
Code qui permet dafficher les données de la ligne sélectionnée dans le second userform :
Private Sub CmdConsult_Click()
With Listview1
'affichage de la fiche correspondant à la ligne sélectionnée
Rng = .SelectedItem.Index
UsfAffiche.TextNum = .ListItems(.SelectedItem.Index).Text
UsfAffiche.TextNom.Value = .SelectedItem.ListSubItems(2).Text
UsfAffiche.TextPrénom.Value = .SelectedItem.ListSubItems(3).Text
End With
UsfAffiche.Show
End Sub |
Partager