Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Userform

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 !

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

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.
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.
 
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
 
- 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
6
Affichages
248
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
  • Question Question
Microsoft 365 Personal.xlsb
Réponses
4
Affichages
401
Réponses
2
Affichages
344
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…