<RESOLU> Affecter un code lors du clic sur un label d'un userform ?

  • Initiateur de la discussion Initiateur de la discussion krystof_ii
  • 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 !

krystof_ii

XLDnaute Occasionnel
Bonjour à tous :

j'ai créé un userform de la manière suivante :

Private Sub UserForm_Activate()
Dim Etiquette_PT() As New Classe1
Dim Poste_Technique As Control
Dim MaxPosX, PosX, PosY As Integer
Dim i As Integer

' Réactiver le rafraichissement d'écran
Application.ScreenUpdating = True
'Initialisation des positions
PosX = -125
PosY = 15
'CREATION DES COMBOBOX
ReDim Preserve Etiquette_PT(nb_Poste)
For i = 1 To nb_Poste
Set ctrl = Me.Controls.Add("Forms.Label.1")
With ctrl
.Caption = PT(i)
.Left = 10
.Top = PosY + 20
.Width = 200
.Font.Size = 10
.Font.Bold = False
.MousePointer = 10
End With
PosX = 10
PosY = PosY + 20
Set Etiquette_PT(i).C_Etiquette_PT = ctrl 'init du module de classe
Next i
End Sub

J'ai créé un module de classe (Classe1) :
Public WithEvents C_Etiquette_PT As MSForms.Label

Private Sub C_Etiquette_PT_Click()
Sheets("Cahier des Charges - FS").Range("S4") = C_Etiquette_PT.Caption
Unload Me
End Sub

J'esperai qu'avec cela, je pourrai lors du clique sur le label en question : retourner la valeur dans une cellule puis fermer ma boite de dialogue.

Mais, rien ne se passe : le clic n'est pas capté par Excel.

Sauriez-vous m'indiquer où j'ai fauté ?

Par avance merci
 
Dernière édition:
Re : Affecter un code lors du clic sur un label d'un userform ?

Re,

C'est beaucoup plus facile avec un fichier 😉

Voici le tien modifié, j'ai mentionné les lignes que j'avais créées, modifiées ou supprimées.

A+

Martial

Edit : Salut tototiti, ma réponse n'était que pour répondre à la question (sans plus de précision...). Tout dépend ce que veut faire exactement krystof_ii
 

Pièces jointes

Dernière édition:
Re : Affecter un code lors du clic sur un label d'un userform ?

Bonsoir krystof, Bonsoir Yaloo, 🙂

Si je puis me permettre, pourquoi passer par des Labels ? une zone de liste (Lisbox) ne ferait-elle pas mieux l'affaire (en plus on éviterait la classe, certes utile dans certains cas mais un peu lourde si on peut s'en passer)
 

Pièces jointes

Re : Affecter un code lors du clic sur un label d'un userform ?

Merci a vous 2,

Les 2 fonctionnent correctement.
Mon erreur de codage est d'avoir déclaré mes labels "Etiquette_PT()" en local (dans la sub de l'userform) au lieu de la déclarer en global (avant la sub).

Pour répondre à tototiti :
Si je puis me permettre, pourquoi passer par des Labels ?
🙁 je n'y avais pas pensé, tout simplement. ll est vrai qu'avec listbox, le code se trouve énormément simplifié,
Par contre, je penses que je resterai dans l'utilisation des modules de classes pour des raisons graphiques : je peux placer les labels individuellement, exactement où je le souhaite. (Je trouve les éléments de ListBox trop rapproché).

Encore merci à vous 2 (je plantais depuis plus de 2h sur ce simple pb)😱
 
- 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

Retour