Detection du bouton à l'origine de l'action

Le
Christophe CAMPAIN
Bonjour à tous,

Admettons que 3 bouttons différents déclenchent la même procédure ; comment
faire pour savoir quel bouton est à l'origine de l'action ?

Par avance merci,

Kristof
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry Euzenot
Le #1268602
Si ce sont des contrôles VBA et non des boutons de formulaire, une solution
simple est de passer une valeur dans une variable publique

Dans ta macro d'enclenchement du bouton tu mets Flag = 1, Flag = 2, Flag 3, etc.

Et ensuite tu fais un test

Select case Flag
Case 1
Bouton 1
Case 2
Bouton 2
Case 3
Bouton 3
End Select

Ainsi tu sais d'où proviens le click ;o)

Heu je suis pas un vrai pro du VBA alors peut-être qu'il existe une fonction
plus appropriée ^^

"Christophe CAMPAIN" dans le message de news:
Bonjour à tous,

Admettons que 3 bouttons différents déclenchent la même procédure ;
comment

faire pour savoir quel bouton est à l'origine de l'action ?

Par avance merci,

Kristof




garnote
Le #1268598
Salut Kristof,

Essaie l'instruction suivante :

MsgBox Application.Caller

Serge

"Christophe CAMPAIN" dans le message de news:
Bonjour à tous,

Admettons que 3 bouttons différents déclenchent la même procédure ;
comment

faire pour savoir quel bouton est à l'origine de l'action ?

Par avance merci,

Kristof




Christophe CAMPAIN
Le #1268594
Merci à tous,

Mais ces solutions ne conviennent pas ; entre autre parceque mon problème
réel est sur Access mais que je pensait qu'il se poserait de la même manière
sur Excel (c'est pas tout à fait le cas...): L'instruction MsgBox
Application.Caller n'est pas disponible sur ma version d'Access.
Il existe bien l'instruction ActiveControl , mais elle ne s'applique qu'aux
contrôles pouvant recevoir le focus... et dans mon cas il sagit de contrôles
image.

Merci tout de même pour les pistes

@+
kristof


Pour info, ci-joint mon post sur le forum Access

-----------------------------
Mon formulaire contiens plusieur contrôles images et je cherche à détecter
celui sur lequel on clique avec la souris pour l'encadrer de rouge . Ma
procédure actuelle est :
'----------------------
Private Sub Image1_Click()
Dim Ctl As Control
' RAZ des mises en forme des contrôles image
For Each Ctl In Me
If Ctl.ControlType = 103 Then 'Si c'est un cadre image
With Ctl
.BorderColor = RGB(0, 0, 0)
.BorderWidth = 0
End With
End If
Next Ctl

With Image1 'C'set là qu'il me faudrait le nom du cadre image sur lequel on
viens de cliquer
.BorderColor = RGB(255, 0, 0)
.BorderWidth = 1
End With
End Sub
'-------------------------

Ca marche, mais s'il faut remettre ça pour chaque contrôle image, c'est un
peu lourd comme méthode.
C'est pourquoi je cherche à détecter le contrôle image sur lequel on clique
pour appeler ma procédure, comme ça peu importe le nombre de contrôles
images...
--------------------------------
"Christophe CAMPAIN" dans le message de news:
Bonjour à tous,

Admettons que 3 bouttons différents déclenchent la même procédure ;
comment

faire pour savoir quel bouton est à l'origine de l'action ?

Par avance merci,

Kristof




Publicité
Poster une réponse
Anonyme