Bonjour,

J’ai un premier userform avec une listview qui contient plusieurs colonnes dont une pour des photos.
Le bouton « Consulter » me permet de récupérer les informations de la ligne sélectionnée dans un autre userform contenant des textbox et un picturebox. Mais je n’arrive pas à récupérer la photo de la listview dans le picturebox.
Le code de la listview :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 d’afficher 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
Je ne vois pas comment afficher de la même façon l’image de la colonne photo de la ligne sélectionnée dans la listview.
Merci de bien vouloir m’éclairer. Je précise que je suis très débutante.