Bonjour,
Sub test()
Dim larg(1 To 3) As Single, largeur As Single, lig As Long, i As Long
For i = 1 To 3
larg(i) = Columns(4 + i).ColumnWidth
largeur = largeur + Columns(4 + i).ColumnWidth
Next i
Application.ScreenUpdating = False
Columns(5).ColumnWidth = largeur + 1.64
For lig = 11 To 34
If Cells(lig, 5) <> "" Then
Cells(lig, 5).Resize(, 3).UnMerge
Rows(lig).EntireRow.AutoFit
Cells(lig, 5).Resize(, 3).Merge
End If
Next lig
Columns(5).ColumnWidth = larg(1)
End Sub
Il faut accepter l'éventualité de petits ratés, des caractères restants encore masqués.
Sauf a accepter une ligne supplémentaire de temps à autre en baissant le +1.64
Impossible de faire exact de part la mesure d'une colonne en vba : Une unité de largeur de colonne est égale à la largeur d'un caractère du style Normal. Débrouille-toi avec ça...
eric
eric