re,
pourquoi K1 et ne pas J1, je ne savais pas si J1 était inclu ou exclu et je supposais "inclu", apparament c'est exclu.
VBA mesure en points et 1 cm est 28.35 points
Sub center()
x = 28.35 'nombre de points dans 1 cm
Set shp = ActiveSheet.Shapes("rectangle 84") 'au lieu de 1, le nom du rectangle
shp.Left = Application.Max(0, (Range("K1").Left - shp.Width) / 2)
shp.Top = 0
MsgBox "largeur : " & shp.Width & " points ou " & Format(shp.Width / x, "0.00") & " cm" & vbLf & _
"hauteur : " & shp.Height & " points ou " & Format(shp.Height / x, "0.00") & " cm" & vbLf & _
"gauche : " & shp.Left & " points ou " & Format(shp.Left / x, "0.00") & " cm" & vbLf & _
"gauche de cellule K1 : " & Range("K1").Left & " points ou " & Format(Range("K1").Left / x, "0.00") & " cm" & vbLf & vbLf & _
" 2 * " & Format(shp.Left / x, "0.00") & " cm + " & Format(shp.Width / x, "0.00") & " cm = " & Format(Range("K1").Left / x, "0.00") & " cm" _
, vbInformation, UCase("Dimensions de " & shp.Name)
End Sub