XL 2016 Userform

shippuden1985

XLDnaute Nouveau
Bonjour
j'ai un module pour créer des images dans un userform avec les events click() de chacune. après exécution j'ai mon userform avec tous les images. MAIS l'event ne fonctionne pas. un exemple : si je clique sur image1 j'ouvre un fichier pdf. si je clique sur image2 j'ouvre un fichier word. ci-joint un fichier excel .
merci
 

Pièces jointes

  • doc.zip
    90.9 KB · Affichages: 15
Solution
Il faudrait savoir comment vous voulez que l'UserForm soit informé d'un clic sur une de ces images. Il faudrait peut être aussi définir un objet ensemble d'images générant un évèneent pour lui.
Moi je pense qu'il vaudrait mieux passer par des images en nombre suffisant préétablies à la conception de l'UserForm.

Dranreb

XLDnaute Barbatruc
Il faudrait savoir comment vous voulez que l'UserForm soit informé d'un clic sur une de ces images. Il faudrait peut être aussi définir un objet ensemble d'images générant un évèneent pour lui.
Moi je pense qu'il vaudrait mieux passer par des images en nombre suffisant préétablies à la conception de l'UserForm.
 

Dranreb

XLDnaute Barbatruc
Exemple de modules de classe vite fait:
Un premier rebaptisé EnsembleImages :
VB:
Option Explicit
Event Click(ByVal Info)
Private Cln As New Collection
Public Sub Add(ByVal Frm As MSForms.Frame, ByVal FileName As String, ByVal Info)
   Dim SIe As SupportImage
   Set SIe = New SupportImage
   SIe.Init Me, Frm.Controls.Add("Forms.Image.1"), FileName, Info
   Cln.Add SIe
   End Sub
Public Sub MéthodeRéservéeÀSupportImage(ByVal Info)
   RaiseEvent Click(Info)
   End Sub
Un second rebaptisé SupportImage :
VB:
Option Explicit
Private WithEvents Image As MSForms.Image, Parent As EnsembleImages, Information
Public Sub Init(ByVal EIs As EnsembleImages, Img As MSForms.Image, ByVal FileName As String, ByVal Info)
   Set Image = Img
   Image.Picture = LoadPicture(FileName)
   If IsObject(Info) Then Set Information = Info Else Information = Info
   End Sub
Private Sub Image_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Parent.MéthodeRéservéeÀSupportImage Information
   End Sub
En tête de l'UserForm :
Code:
Option Explicit
Private WithEvents EIs As EnsembleImages
Private Sub UserForm_Initialize()
   Set EIs = New EnsembleImages
Avec dedans des :
VB:
   EIs.Add Me.corp, MachinTrucJpg, ÀRendre
Et plus loin :
Code:
Private Sub EIs_Click(ByVal Info As Variant)

   End Sub
 

Discussions similaires

Réponses
12
Affichages
653

Statistiques des forums

Discussions
314 025
Messages
2 104 761
Membres
109 139
dernier inscrit
cerega8769