Option Explicit
Private Echelle As Double, Marges As Double
Public Property Let LargPts(ByVal Cel As Range, ByVal RHS As Double)
Dim W1 As Double, W2 As Double
If Echelle = 0 Then
Cel.ColumnWidth = 1: W1 = Cel.Width
Cel.ColumnWidth = 2: W2 = Cel.Width
Echelle = W2 - W1: Marges = W1 - Echelle
End If
If RHS > Marges Then
Cel.ColumnWidth = (RHS - Marges) / Echelle
Else: Cel.ColumnWidth = 0: End If
End Property
Sub Test()
LargPts(Cells(1, 1)) = Cells(1, 1).Value
Cells(1, 1).Value = Cells(1, 1).Width
End Sub