Macro après clic sur symbol

Bonjour à tous,

Dans l'onglet "résumé" de mon fichier, je génère des lignes correspondant à des crédits avec des tickbox et de symboles "no" en fin de ligne.

image

J'aimerai pouvoir lancer des macros quand des clics simples sont faits sur les symboles "no" (msg box de confirmation puis suppression de ligne avec décalage vers le haut par exemple) sachant qu'il peut y avoir d'autres lignes de crédits et que tous les "no" symboles ne sont donc pas affichés (car certains ne sont pas encore existants).

J'ai déjà changé automatiquement le nom de chaque symbole lors de l'insertion de chaque crédit (avec en fin de nom, le numéro de ligne où se trouve le "no" symbole).

Merci d'avance

5codage.xlsm (70.60 Ko)

Bonjour, et bienvenue,

ajoute OnAction au code de création du symbole ... je ne sais pas si c'est le bon code de création, sinon prend le comme exemple

With Sheets("Résumé").Shapes.AddShape(msoShapeNoSymbol, Cells(ligne_fin, 8).Left + 40, Cells(ligne_fin, 8).Top + 2, 11.25, 11.25)
     .name = "Supp_" & ligne_fin
     .Fill.ForeColor.RGB = RGB(255, 0, 0)
     .OnAction = "'supprimer(" & ligne_fin & ")'"

End With

et ensuite définis la fonction

Sub supprimer(ligne)

End Sub

avec suppression du shape no, de la case à cocher et de la ligne (c'est classique)

Merci pour votre réponse.

Cependant, je ne comprends pas comment "'supprimer(" & ligne_fin & ")'" déclenche la macro Sub supprimer(ligne) (en effet cela déclenche le msgbox que j'ai mis pour l'instant dans supprimer(ligne)).

Et savez-vous comment je peux récupérer le nom du "nosymbol" sur lequel je viens de cliquer afin que je puisse le spliter et récupérer la ligne que j'ai attribué à la création de ce bouton dans son nom svp?

Merci d'avance

Cependant, je ne comprends pas comment "'supprimer(" & ligne_fin & ")'" déclenche la macro Sub supprimer(ligne) (en effet cela déclenche le msgbox que j'ai mis pour l'instant dans supprimer(ligne)).

Parce que c'est la syntaxe !

Une macro, c'est du texte et on l'appelle par son nom (même sans call). Il s'agit donc de mettre du texte dans OnAction d'où ls guillemets. Et pour insérer la valeur ligne_fin je suspends les guillemets !

Et savez-vous comment je peux récupérer le nom du "nosymbol" sur lequel je viens de cliquer afin que je puisse le spliter et récupérer la ligne que j'ai attribué à la création de ce bouton dans son nom svp?

Tu n'as pas besoin ni de connaître le nom ni de splitter puisque OnAction transmet le numéro de ligne concernée (ligne_fin au moment de la création du shape ! cette valeur ne s'actualise plus ensuite)

Toutefois, tu pourrais reconstituer ce nom connaissant son numéro.

Si tu veux que ce soit plus clair, mets ceci

numero = ligne_fin
With Sheets("Résumé").Shapes.AddShape(msoShapeNoSymbol, Cells(ligne_fin, 8).Left + 40, Cells(ligne_fin, 8).Top + 2, 11.25, 11.25)
     .name = "Supp_" & numero
     .Fill.ForeColor.RGB = RGB(255, 0, 0)
     .OnAction = "'supprimer(" & numero & ")'"
End With

Superbe! Merci pour votre aide

Rechercher des sujets similaires à "macro clic symbol"