Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Double Click sur Image dans UserForm

1 réponse
Avatar
Redan
Bonjour,

Je voulais savoir s'il est possible d'éviter de mentionner le nom de l'image
lorsque je désire récupérer la propriété Tag ?

Merci d'avance!

Voici un exemple :

Private Sub hello(strName As String)
MsgBox strName
End Sub

Private Sub Image1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
hello Image1.Tag
End Sub

Private Sub Image2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
hello Image2.Tag
End Sub

Private Sub Image3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
hello Image3.Tag
End Sub

Private Sub Image4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
hello Image4.Tag
End Sub

1 réponse

Avatar
PMO
Bonjour,

Je suppose que votre but est d'éviter de faire une procédure DblClick
pour chaque image. C'est très fastidieux si votre UserForm en contient
beaucoup.
S'il s'agit bien de cela voici une piste avec le code suivant :

1) Créez un module de classe. Renommez le "clsControlsEvents"
et copiez le code suivant

'*************
Public WithEvents Img As MSForms.Image

Private Sub Img_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox Img.Tag
End Sub
'*************

2) Affichez la fenêtre de code de votre UserForm
et copiez le code suivant

'*************
Dim IM() As New clsControlsEvents

Private Sub UserForm_activate()
Dim i&
Dim ctl As MSForms.Control
For Each ctl In Me.Controls
If TypeOf ctl Is MSForms.Image Then
i& = i& + 1
ReDim Preserve IM(1 To i&)
Set IM(i&).Img = ctl
End If
Next ctl
End Sub
'*************

Il n'y a plus qu'à lancer le UserForm et si vous faites un
double-clic sur une image sa propriété Tag s'affichera.

Cordialement.

PMO
Patrick Morange