Sélectionner un shape = évènement?

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #19589771
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.


Manbas
Le #19589751
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"
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.






MichDenis
Le #19589731
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" #
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"
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.






Daniel.C
Le #19589711
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" 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"
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.








Manbas
Le #19590141
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" %
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" 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"
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.









MichDenis
Le #19590111
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".
MichDenis
Le #19590101
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"
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" 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"
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.








MichDenis
Le #19590081
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" #
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".
Manbas
Le #19590071
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" %
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".









Manbas
Le #19590471
ça y est j'ai compris et ça marche!
Merci ++++ MichDenis



"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".









Publicité
Poster une réponse
Anonyme