Evènements associés à un groupe d'Images

Griffin

XLDnaute Nouveau
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:
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:
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 !
 

Pierrot93

XLDnaute Barbatruc
Re : Evènements associés à un groupe d'Images

Bonjour,

en lieu et place de :
Code:
Dim mesImages() As MSForms.image
déclarée dans la "sub", à déclarer comme ceci, en tête du module de l'usf :
Code:
Private mesImages() As New Classe1
en supposant ton module de classe nommé "Classe1"

et attention également au "On Error Resume Next" qui masque tes erreurs.... pas trop top en l'état..

bon après midi
@+
 

Discussions similaires

Réponses
29
Affichages
982

Statistiques des forums

Discussions
312 379
Messages
2 087 762
Membres
103 661
dernier inscrit
fcleves