Microsoft 365 lancer une macro juste en sélectionnant une forme (Shape)

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 !

creolia

XLDnaute Impliqué
Bonjour le forum

je viens vous posez une petite question qui malgré mes connaissance je n'arrive pas a résoudre.

j'ai une feuille avec des formes ou shape je les créer Grace à une macro qui les renommes mise en forme ect je les utilise sur un plan.

le soucis quand ces formes quand il sont créer il ne sont pas cliquable comme un bouton juste sélectionnable.

ma question est la suivante comment lancer une macro juste en sélectionnant la forme mon but est de récupéré le texte de la forme et envoyer vers une textbox

ou lors de la création de ma forme puis je intégré une macro automatiquement à l'intérieur.

pouvez vous m'aider svp cordialement patrice
 

Pièces jointes

Bonjour Créolia, Oneida,
Un exemple où une macro est attachée à toute forme de la feuille :
VB:
Sub Essai()
    For Each S In ActiveSheet.Shapes
        S.OnAction = "MaMacro"
    Next
    [A1].Select
End Sub
En PJ la macro accrochée donne juste le nom du shape cliqué.
 

Pièces jointes

Bonjour sylvanu

merci pour votre aide mais je ne comprend pas la mise en œuvre de votre code dois juste créer un module avec le code car sur mon projet cela fonctionne pas j'ai essayer également de limité cette evenement à qu'un type de forme mais sa ne marche pas non plus pourriez vous éclairé ma lanterne svp

ci dessous votre code que j'ai essayer modifier

VB:
Sub Essai()
    Dim Sh As Shape
For Each Sh In Sheets("Feuil1").Shapes
'On Error Resume Next
If Sh.Name Like "PO_06_*" Or Sh.Name Like "PO_09_*" Or Sh.Name Like "PO_25_*" Or Sh.Name Like "CO_02_*" Or Sh.Name Like "CO_05_*" Or Sh.Name Like "CO_25_*" Or Sh.Name Like "EP_06_*" Then

        S.OnAction = "MaMacro"
End If
    Next
    [A1].Select
  
End Sub
Sub MaMacro()

    MsgBox "Nom de la forme sélectionnée : " & Application.Caller
End Sub
 
Bonsoir,
Le problème est que tous les shapes sont groupés. Donc les noms ne sont pas ceux utilisés ils ont un préfixé dépendant de leur groupe. ( en plus vous faites Sh.name puis S.Onaction )
En Pj un essai où le groupe n'intervient pas, avec :
VB:
Sub Essai()
    For Each S In ActiveSheet.Shapes
        S.OnAction = "MaMacro"
    Next
    [A1].Select
End Sub
Sub MaMacro()
Sh = Application.Caller
If Sh = "PO_06" Or Sh = "PO_09" Or Sh = "PO_25" Or Sh = "CO_02" Or Sh = "CO_05" Or Sh = "CO_25" Or Sh = "EP_06" Then
    MsgBox "Nom de la forme sélectionnée : " & Application.Caller & Chr(10) & Chr(10) & _
            " Texte dans forme : " & VbTab & ActiveSheet.Shapes(Sh).TextFrame.Characters.Text
End If
End Sub
La macro est attachée à tous les shapes et la différenciation se fait dans la macro.
 

Pièces jointes

Bonsoir,
Le problème est que tous les shapes sont groupés. Donc les noms ne sont pas ceux utilisés ils ont un préfixé dépendant de leur groupe. ( en plus vous faites Sh.name puis S.Onaction )
En Pj un essai où le groupe n'intervient pas, avec :
VB:
Sub Essai()
    For Each S In ActiveSheet.Shapes
        S.OnAction = "MaMacro"
    Next
    [A1].Select
End Sub
Sub MaMacro()
Sh = Application.Caller
If Sh = "PO_06" Or Sh = "PO_09" Or Sh = "PO_25" Or Sh = "CO_02" Or Sh = "CO_05" Or Sh = "CO_25" Or Sh = "EP_06" Then
    MsgBox "Nom de la forme sélectionnée : " & Application.Caller & Chr(10) & Chr(10) & _
            " Texte dans forme : " & VbTab & ActiveSheet.Shapes(Sh).TextFrame.Characters.Text
End If
End Sub
La macro est attachée à tous les shapes et la différenciation se fait dans la macro.
Bonsoir Sylvanu désolé j'ai pas put vous répondre avant je tenais à vous remercier pour votre aide j'ai put adapter comme je voulais grâce à votre bout de code. grâce a votre aide j'ai appris de nouvelle possibilité que j'ignorais je vous souhaite de bonne fête à vous et à vos proches bonne soirée
 
- 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