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