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

  • Initiateur de la discussion Initiateur de la discussion Griffin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !
 
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
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
233
Réponses
4
Affichages
179
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Réponses
10
Affichages
282
Réponses
5
Affichages
183
Réponses
3
Affichages
195
Retour