Re
@djodjo j'ai retrouvé et simplifié la procédure
Sub HauteurLigneMergeArea(MergedZone As Range)
Dim Zone1Cel As Range
Dim Ind As Long
Dim LargeurTotale As Single
' Désactiver les évènement
Application.EnableEvents = False
' Définir la cellule qui va contenir le text
Set Zone1Cel = ActiveSheet.Range("Z" & MergedZone.Row)
'Déterminer la largeur totale de la zone fusionnée
For Ind = 1 To MergedZone.Columns.Count
LargeurTotale = LargeurTotale + MergedZone.Columns(Ind).ColumnWidth
Next
' Appliquer la largeur totale à la colonne 1
Zone1Cel.ColumnWidth = LargeurTotale - 1
' Inscrire dedans le texte
Zone1Cel.Value = MergedZone.Cells(1, 1).Value
' Appliquer le retour à la ligne de la cellule unique
' et son ajustement automatique
With Zone1Cel
.WrapText = False
.WrapText = True
.Rows.AutoFit
End With
' Forcer la hauteur de ligne
MergedZone.RowHeight = Zone1Cel.RowHeight
' Effacer le contenu de la cellule unique
Zone1Cel.Clear
' Réactiver les évènement
Application.EnableEvents = True
Set Zone1Cel = nothing
End Sub
Et elle est appelé avec une sub dans Feuil1
Private Sub Worksheet_Change(ByVal Target As Range)
' Uniquement pour la cellule A3
If Target.Resize(1, 1).Address = "$A$3" Then Call HauteurLigneMergeArea(Target.MergeArea)
End Sub
A+
Nota : je me suis permis de modifier ton titre pour qu'il soit plus explicite