Bonjour Céline
Voici une petite procédure appellée "Cadrer_Forme" qui devrait répondre au problème posé :
-----------------------------------------------------------------------------------------------
Sub Cadrer_Forme(Name As String)
Dim C as Range
Set C = ActiveSheet.Shapes(Name).TopLeftCell
ActiveSheet.Shapes(Name).Top = _
C.Top + (C.Height - ActiveSheet.Shapes(Name).Height) / 2
ActiveSheet.Shapes(Name).Left = _
C.Left + (C.Width - ActiveSheet.Shapes(Name).Width) / 2
End Sub
------------------------------------------------------------------------------------------------
Pour l'appeler il suffit par exemple de coder dans une macro
Cadrer_Forme ("CheckBox1")
Le paramètre correspond au nom affecté à la forme par Excel ou par toi
La forme peut être de n'importe quelle nature :
CheckBox, Picture, ...........
NB:
Je suis allé au plus court. Je n'ai pas vérifié si la forme existait. J'ai supposé qu'elle était dans la feuille active au moment de l'appel de la procédure, ....
Bref. Il reste un peu de travail pour "blinder" le fonctionnement.
Bon courage pour la suite.
Cordialement ....