Le problème vient que les unités hauteur de ligne et largeur de colonne ne sont pas les mêmes que left et top ... donc je détermine les coefficients sur la première ligne et la première colonne. Un autre problème vient notamment de la hauteur du bandeau que je ne connais pas !
Une proposition :
Sub centrer()
With Range("B2")
Columns("A:A").ColumnWidth = Int((Application.Width - (.End(xlToRight).Offset(1, 1).Left - .Left)) / 2 / (.Left / Columns("A:A").ColumnWidth))
Rows("1:1").RowHeight = Int((Application.Height * 0.75 - (.End(xlDown).Offset(1, 1).Top - .Top)) / 2 / (.Top / Rows("1:1").RowHeight))
cpt = cpt - 1
End With
End Sub
le tableau commence en B2 obligatoirement