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

Sélectionner un shape = évènement?

11 réponses
Avatar
Manbas
Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille peut
devenir un évènement à partir duquel je pourrais articuler du code ?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
A mon avis, pas directement, à part, bien sûr, le clic (affectation
d'une macro. Sinon, un hyperlien, selon la cellule sur laquelle il
arrive peut déclencher l'évènement "selection_change".
Cordialement.
Daniel

Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille peut
devenir un évènement à partir duquel je pourrais articuler du code ?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.


Avatar
Manbas
Merci Daniel pour ta réponse.
Ne pourrais-je pas désigner le shape sélectionné par quelque chose dans le
genre:
set monShape¬tivesheet.shape ...???
monShape.onaction="maMacro"



"Daniel.C" a écrit dans le message de news:

Bonjour.
A mon avis, pas directement, à part, bien sûr, le clic (affectation d'une
macro. Sinon, un hyperlien, selon la cellule sur laquelle il arrive peut
déclencher l'évènement "selection_change".
Cordialement.
Daniel

Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille
peut devenir un évènement à partir duquel je pourrais articuler du code ?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.






Avatar
MichDenis
Bonjour Manbas,

Tu peux affecter la même macro à chaque "Shape" de ta feuille.
Application.Caller te retourne le nom de la "Shape" sur laquelle
tu as cliqué. À partir de là, tu peux faire un select case et selon
le nom du shape, exécuter du code ou appeler une macro
particulière.

'-------------------------------
Sub test()
Dim X As String
X = Application.Caller
End Sub
'-------------------------------



"Manbas" a écrit dans le message de groupe de discussion :
#
Merci Daniel pour ta réponse.
Ne pourrais-je pas désigner le shape sélectionné par quelque chose dans le
genre:
set monShape¬tivesheet.shape ...???
monShape.onaction="maMacro"



"Daniel.C" a écrit dans le message de news:

Bonjour.
A mon avis, pas directement, à part, bien sûr, le clic (affectation d'une
macro. Sinon, un hyperlien, selon la cellule sur laquelle il arrive peut
déclencher l'évènement "selection_change".
Cordialement.
Daniel

Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille
peut devenir un évènement à partir duquel je pourrais articuler du code ?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.






Avatar
Daniel.C
Bonjour Denis,
Super intéressant; c'est presque la réponse au post de Choko
(20:26:50), puisqu'avec le nom, il obtient la position.
Daniel

Bonjour Manbas,

Tu peux affecter la même macro à chaque "Shape" de ta feuille.
Application.Caller te retourne le nom de la "Shape" sur laquelle
tu as cliqué. À partir de là, tu peux faire un select case et selon
le nom du shape, exécuter du code ou appeler une macro
particulière.

'-------------------------------
Sub test()
Dim X As String
X = Application.Caller
End Sub
'-------------------------------



"Manbas" a écrit dans le message de groupe de
discussion : #
Merci Daniel pour ta réponse.
Ne pourrais-je pas désigner le shape sélectionné par quelque chose dans le
genre:
set monShape¬tivesheet.shape ...???
monShape.onaction="maMacro"



"Daniel.C" a écrit dans le message de news:

Bonjour.
A mon avis, pas directement, à part, bien sûr, le clic (affectation d'une
macro. Sinon, un hyperlien, selon la cellule sur laquelle il arrive peut
déclencher l'évènement "selection_change".
Cordialement.
Daniel

Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille
peut devenir un évènement à partir duquel je pourrais articuler du code ?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.








Avatar
Manbas
Merci Mich
J'avais renoncé à application.caller car je ne sais pas m'en servir !

nom=application.caller
msgbox nom

me renvoi une erreur d'execution 13 (incompatibilté de type sur la ligne
msgbox nom


"MichDenis" a écrit dans le message de news:
%
Bonjour Manbas,

Tu peux affecter la même macro à chaque "Shape" de ta feuille.
Application.Caller te retourne le nom de la "Shape" sur laquelle
tu as cliqué. À partir de là, tu peux faire un select case et selon
le nom du shape, exécuter du code ou appeler une macro
particulière.

'-------------------------------
Sub test()
Dim X As String
X = Application.Caller
End Sub
'-------------------------------



"Manbas" a écrit dans le message de groupe de
discussion :
#
Merci Daniel pour ta réponse.
Ne pourrais-je pas désigner le shape sélectionné par quelque chose dans le
genre:
set monShape¬tivesheet.shape ...???
monShape.onaction="maMacro"



"Daniel.C" a écrit dans le message de news:

Bonjour.
A mon avis, pas directement, à part, bien sûr, le clic (affectation d'une
macro. Sinon, un hyperlien, selon la cellule sur laquelle il arrive peut
déclencher l'évènement "selection_change".
Cordialement.
Daniel

Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille
peut devenir un évènement à partir duquel je pourrais articuler du code
?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.









Avatar
MichDenis
Sub test()
Dim X As String
X = Application.Caller
MsgBox X
End Sub

A ) Tu dois d'abord affecter cette macro à ta shape.
(les contrôles émanant de la barre d'outils "contrôle"
ne doivent pas être du nombre... tu parlais de "forme"
dans ton premier message.

B ) Si tu cliques sur la shape, tu devrait avoir le nom de celle-ci
dans ton "Msgbox".
Avatar
MichDenis
Bonjour Daniel,

Si la macro est attachée à la shape, cette sub
retournera l'étendu de la plage de cellules qu'elle occupe !

Je compte sur toi pour la transmettre à qui de droit si
cela peut leur être utile.

'-------------------------------
Sub test()

Dim X As String, Plg As Range
X = Application.Caller
With Feuil1.Shapes(X)
Set Plg = Range(.TopLeftCell, .BottomRightCell)
End With
MsgBox Plg.Address

End Sub
'-------------------------------

"Daniel.C" a écrit dans le message de groupe de discussion :

Bonjour Denis,
Super intéressant; c'est presque la réponse au post de Choko
(20:26:50), puisqu'avec le nom, il obtient la position.
Daniel

Bonjour Manbas,

Tu peux affecter la même macro à chaque "Shape" de ta feuille.
Application.Caller te retourne le nom de la "Shape" sur laquelle
tu as cliqué. À partir de là, tu peux faire un select case et selon
le nom du shape, exécuter du code ou appeler une macro
particulière.

'-------------------------------
Sub test()
Dim X As String
X = Application.Caller
End Sub
'-------------------------------



"Manbas" a écrit dans le message de groupe de
discussion : #
Merci Daniel pour ta réponse.
Ne pourrais-je pas désigner le shape sélectionné par quelque chose dans le
genre:
set monShape¬tivesheet.shape ...???
monShape.onaction="maMacro"



"Daniel.C" a écrit dans le message de news:

Bonjour.
A mon avis, pas directement, à part, bien sûr, le clic (affectation d'une
macro. Sinon, un hyperlien, selon la cellule sur laquelle il arrive peut
déclencher l'évènement "selection_change".
Cordialement.
Daniel

Bonjour
Est-ce que la sélection d'une forme (shape) au hasard dans une feuille
peut devenir un évènement à partir duquel je pourrais articuler du code ?
Si oui, bien sur quelle en serait la rédaction (exemple: if ... then...)
Merci par avance pour votre réponse.








Avatar
MichDenis
Il est vrai que le nom attribuer par défaut de certaines shapes est problématique
car il est trop long... tu dois le rebaptiser.

Le nom doit posséder moins de 30 caractères incluant les espaces. Sinon ça plante.




"MichDenis" a écrit dans le message de groupe de discussion :
#
Sub test()
Dim X As String
X = Application.Caller
MsgBox X
End Sub

A ) Tu dois d'abord affecter cette macro à ta shape.
(les contrôles émanant de la barre d'outils "contrôle"
ne doivent pas être du nombre... tu parlais de "forme"
dans ton premier message.

B ) Si tu cliques sur la shape, tu devrait avoir le nom de celle-ci
dans ton "Msgbox".
Avatar
Manbas
Mes shapes sont des textbox. J'ai cru un instant que c'était la raison de
l'erreur, mais non, avec des rectangles ç'est pareil


"MichDenis" a écrit dans le message de news:
%
Sub test()
Dim X As String
X = Application.Caller
MsgBox X
End Sub

A ) Tu dois d'abord affecter cette macro à ta shape.
(les contrôles émanant de la barre d'outils "contrôle"
ne doivent pas être du nombre... tu parlais de "forme"
dans ton premier message.

B ) Si tu cliques sur la shape, tu devrait avoir le nom de celle-ci
dans ton "Msgbox".









Avatar
Manbas
ça y est j'ai compris et ça marche!
Merci ++++ MichDenis



"MichDenis" a écrit dans le message de news:
%
Sub test()
Dim X As String
X = Application.Caller
MsgBox X
End Sub

A ) Tu dois d'abord affecter cette macro à ta shape.
(les contrôles émanant de la barre d'outils "contrôle"
ne doivent pas être du nombre... tu parlais de "forme"
dans ton premier message.

B ) Si tu cliques sur la shape, tu devrait avoir le nom de celle-ci
dans ton "Msgbox".









1 2