fusionner est une mauvaise habitude, qu'on devrait interdire quand cela concerne Excel.
Sub NoFusion()
For Each c In ActiveSheet.UsedRange.Columns 'boucle chaque colonne dans votre feuille
With c
.Name = "MyC" 'plage nommée
a = Filter([transpose(if(MyC="","~",MyC))], "~", 0) 'toutes les valeurs non-vides
fusion = "": If UBound(a) > -1 Then fusion = a(0) 'première valeur
c.Offset(1 - c.Row).Resize(1).Value = fusion
End With
Next
End Sub