Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1972 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Excel : série de label_x_click()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA Excel : série de label_x_click()

n°2225215
westa
Posté le 16-04-2014 à 13:06:52  profilanswer
 

Bonjour,  
 
j'ai actuellement 26 fois ce code. Il est lancé depuis le Userform15 (clic sur un label FestivalX, X allant de 1 à 26)
 
Private Sub FestivalX_Click()
        UserForm17.titrefestival = Userform15.FestivalX.Caption
End Sub
 
 
Comment faire pour n'avoir qu'une seule fois ce code avec en paramètre le numero du label sur lequel j'ai cliqué ?
Sous-entendu, il extrait le numéro du label sur lequel j'ai cliqué pour l'intégrer dans mon code ?
 
Merci du coup de main !
Je précise ne pas trop maitriser les "For Each" mais je veux bien essayer de comprendre !


Message édité par westa le 17-04-2014 à 13:03:01
mood
Publicité
Posté le 16-04-2014 à 13:06:52  profilanswer
 

n°2225714
westa
Posté le 22-04-2014 à 12:58:40  profilanswer
 

En cherchant sur différents forums, j'ai trouvé quelques pistes mais je n'arrive pas à savoir si je suis sur la bonne piste, ni à l'adapter comme je voudrais...

 

L'idée si je comprends bien est de référencer, à l'initialisation du Userform, tous les labels FestivalX dans un dossier qui s'appellerait ListeItem.
Ensuite, un clic sur un membre de ListeItem appellerait la fonction générique (ListeItem_click).
Mais évidemment, ca ne marche pas dans mon cas... Il ne se passe rien lorsque je clique sur un des labels Festival.

 

J'ai donc créé un module de classe (que j'ai nommé CLblEvents, sans que je sache ce que ca veut dire) avec le code suivant :

 
Code :
  1. Public WithEvents ListeItem As MSForms.Label
  2. Private Sub ListeItem_Click()
  3.     UserForm17.titrefestival = ListeItem.Caption
  4. End Sub
 

Puis dans un module classique :

 
Code :
  1. Dim mcolEvents As New Collection
  2. Private Sub Userform15_initialize()
  3. Dim ListeItem As CLblEvents
  4. Dim Ctl As Control
  5. Dim clsLblEvents As CLblEvents
  6.     Set mcolEvents = New Collection
  7.    
  8.     For Each Ctl In UserForm15.Controls
  9.         If Ctl.Type = msoOLEControlObject Then
  10.             If TypeOf Ctl.OLEFormat.Object.Object Is MSForms.Label Then
  11.                 If Ctl.Name Like "Festival" Then
  12.                     Set clsLblEvents = New CLblEvents
  13.                     Set clsLblEvents.ListeItem = Ctl.OLEFormat.Object.Object
  14.                     mcolEvents.Add clsLblEvents
  15.                 End If
  16.             End If
  17.         End If
  18.     Next
  19. End Sub
 

Est-ce que j'ai un moyen de savoir si ListeItem est correctent rempli ? pour situer le problème...

 

Merci pour votre aide...


Message édité par westa le 23-04-2014 à 11:11:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Excel : série de label_x_click()

 

Sujets relatifs
VBA - Comment cacher le contenu d'une cellule grace au format de celluExécuter une macro au changement du contenu d'une cellule sous excel
VBA EXCEL Choisir la boite mail d'envoi lors d'un envoi via OutlookCréer un moteur de recherche excel
Prévision demande Besoin d'aide VBA EXCELimportation de valeur de cellule dans un texte sous excel
Rapatrier les infos de plusieurs fichiers dans un classeur excelBesoin d'aide pour VBA
Plus de sujets relatifs à : VBA Excel : série de label_x_click()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR