Bonjour,

Je ne sais pas très bien me servir des module de classe, mais à force de chercher un peu partout sur le net, j'ai écrit ce code :

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
Dim hImage, wImage As Integer
Dim fromLeft, shiftLeft, fromTop As Integer
 
Private Sub UserForm_Initialize()
    '---------------------------------
    '  Initialisation des variables
    '---------------------------------
    fromTop = 300
    fromLeft = 15
    shiftLeft = 95
    hImage = 90
    wImage = 90
 
    Call CreerImages (3)
 
End Sub
 
Sub CreerImages(nbImage)
'---------------------------------
'  Création de [nbImages] images à la suite
'---------------------------------
 
    Dim nb As Integer, obj As Control, i As Integer
    Dim mesImages() As MSForms.image
    Dim monImage As MSForms.image
 
    On Error Resume Next
    For i = 0 To nbImage - 1
      Set monImage = Me.Controls("" & i)
      If monImage Is Nothing Then
        Set monImage = Me.Controls.Add("Forms.Image.1", "monImage" & i, True)
        With monImage
          .Top = fromTop
          .Left = fromLeft + shiftLeft * i
          .Height = hImage
          .Width = wImage
        End With
      Else
        MsgBox "existe déjà !"
      End If
      Set monImage = Nothing
    Next
 
    For Each obj In Me.Controls
      If obj.Name Like "monImage*" Then
        nb = nb + 1
        ReDim Preserve mesImages(1 To nb)
        Set mesImages(nb).ImageEvents = obj
      End If
    Next obj
    Set obj = Nothing
End Sub
et un module de classe pour interagir avec ces images :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Option Explicit
Public WithEvents ImageEvents As MSForms.image
 
Private Sub ImageEvents_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim qui As String
    qui = RechercheImages.ActiveControl.Name
    MsgBox qui
End Sub

Mais ca me marche pas. Ca créé bien les 3 images, mais ces images ne réagissent pas à un click de la souris.

A noter aussi une chose que je ne comprend pas : quand je tape "MSForms.Image", le correcteur me vire la majuscule à Image, comme s'il ne connaissait pas l'objet. Ca n'a ptet rien à voir, mais j'aurais aimé savoir d'où ça pouvait venir.

Merci d'avance !