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

Récupérer le nom d'un contrôle

6 réponses
Avatar
Sun Service
Bonjour,

J'aurais aimé savoir comment récupérer le nom du contrôle sur lequel on
aurait cliqué. En effet, je créé dynamiquement des contrôles dans un form
(en fonction des données d'une table), et j'affecte la même procédure par
défaut à chaque contrôle (événement On_Click). Il faut donc arriver à
"personnaliser" le code en fonction du contrôle cliqué.

Merciiiiiiii

Laurent

6 réponses

Avatar
Eric
"Sun Service" écrivait

Bonjour,

J'aurais aimé savoir comment récupérer le nom du contrôle sur
lequel on
aurait cliqué. En effet, je créé dynamiquement des contrôles dans un
form (en fonction des données d'une table), et j'affecte la même
procédure par défaut à chaque contrôle (événement On_Click). Il faut
donc arriver à "personnaliser" le code en fonction du contrôle cliqué.




Bonjour Laurent

Dans la procédure click de ton contrôle tu peux récupérer son nom par:
Me.ActiveControl.Name

A+
Eric

Avatar
EPM
Bonjour

Dim frm As Form, ctl As Control, frm_ctl As Strin
Set frm = Screen.ActiveFor
Set ctl = Screen.ActiveContro
frm_ctl = frm.Name & "-" & ctl.Nam
Avatar
Sun Service
Ah très bien, parfait !

Merci
Laurent

"Eric" a écrit dans le message de news:

"Sun Service" écrivait

Bonjour,

J'aurais aimé savoir comment récupérer le nom du contrôle sur
lequel on
aurait cliqué. En effet, je créé dynamiquement des contrôles dans un
form (en fonction des données d'une table), et j'affecte la même
procédure par défaut à chaque contrôle (événement On_Click). Il faut
donc arriver à "personnaliser" le code en fonction du contrôle cliqué.




Bonjour Laurent

Dans la procédure click de ton contrôle tu peux récupérer son nom par:
Me.ActiveControl.Name

A+
Eric



Avatar
Sun Service
En fait ça ne fonctionne pas comme je voudrais, pour la bonne raison que les
contôles sur lesquels je clique sont des Labels. Et les Labels ne peuvent
passer en ActiveControl. Y aurait il un autre moyen ?

Merciiiiiii

Laurent

"Sun Service" a écrit dans le message de news:
c8crcl$uh$
Ah très bien, parfait !

Merci
Laurent

"Eric" a écrit dans le message de news:

"Sun Service" écrivait

Bonjour,

J'aurais aimé savoir comment récupérer le nom du contrôle sur
lequel on
aurait cliqué. En effet, je créé dynamiquement des contrôles dans un
form (en fonction des données d'une table), et j'affecte la même
procédure par défaut à chaque contrôle (événement On_Click). Il faut
donc arriver à "personnaliser" le code en fonction du contrôle cliqué.




Bonjour Laurent

Dans la procédure click de ton contrôle tu peux récupérer son nom par:
Me.ActiveControl.Name

A+
Eric







Avatar
Christophe CAMPAIN
Bonjour,

J'ai eu uneproblématique similaire il y a quelques jours et voici une
solution (qui m'a été fournie) qui mérite d'être essayée :

1- Tu créé un module de classe que tu nomes ClasseEtiquette.

2- Tu colles les lignes suivantes dans ce module :
'----------------------------------------------------------
Public WithEvents LabelGroup As Label
Private Sub LabelGroup_Click()
MsgBox LabelGroup.Name ' (Mets ta procédure)
End Sub
'----------------------------------------------------------
3- Dans le code de ton formulaire tu tapes ceci :
'----------------------------------------------------------
Dim LabelBoxes() As New ClasseEtiquette

Private Sub Form_Open(Cancel As Integer)
Dim LabelBoxesCount As Integer
Dim Ctl As Control

LabelBoxesCount = 0
For Each Ctl In Me.Controls
If Ctl.ControlType = acLabel Then
LabelBoxesCount = LabelBoxesCount + 1
Ctl.OnClick = "[Procédure événementielle]"
ReDim Preserve LabelBoxes(1 To LabelBoxesCount)
Set LabelBoxes(LabelBoxesCount).LabelGroup = Ctl
End If
Next Ctl
End Sub
'----------------------------------------------------------

Tu peux reprendre cette méthode pour d'autres types de contrôles (J'ai testé
avec les contrôles image et ça marche)

Par contre dans mon cas, il m'a fallu renoncer à cette solution parcequ'elle
génère (chez moi) des conflits avec les évènements MouseDown, MouseMouve,
etc...
C'est en cours de débogage avec Benead (celui qui m'a proposé cette
solution).

J'espère que ça répondra à tes attentes,
Tiens moi au courant de ce que ça donne chez toi.

@+
Kristof

"Sun Service" a écrit dans le message de
news:c8cnj6$k5i$
Bonjour,

J'aurais aimé savoir comment récupérer le nom du contrôle sur lequel
on

aurait cliqué. En effet, je créé dynamiquement des contrôles dans un form
(en fonction des données d'une table), et j'affecte la même procédure par
défaut à chaque contrôle (événement On_Click). Il faut donc arriver à
"personnaliser" le code en fonction du contrôle cliqué.

Merciiiiiiii

Laurent




Avatar
3stone
Salut,

"EPM"

Dim frm As Form, ctl As Control, frm_ctl As String
Set frm = Screen.ActiveForm
Set ctl = Screen.ActiveControl
frm_ctl = frm.Name & "-" & ctl.Name




Dans ce cas, il aurait suffit de faire:

debug.print Screen.ActiveControl.Name


Mais voilà, le contrôle actif n'est pas l'étiquette sur laquelle on clique,
mais, la zone de texte (ou autre) où se trouve le curseur...



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------