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