Sub defusionner()
Dim der&, i&, n&
Application.ScreenUpdating = False
With ActiveSheet
'dernière ligne
If .FilterMode Then .ShowAllData
der = .Cells(Rows.Count, "a").End(xlUp)
'recherche dernière cellule fusionnée
For i = der To 2 Step -1
If .Cells(i, 1).MergeCells Then Exit For
Next i
'si i = 1 pas de cellule fusionnée
If i = 1 Then Exit Sub
'prochaine ligne à examiner (on saute la dernière ligne avec fusion)
i = i - .Cells(i, 1).MergeArea.Cells.Count + 1
For i = i - 1 To 2 Step -1
If .Cells(i, 1).MergeCells Then
n = .Cells(i, 1).MergeArea.Cells.Count 'nombre de lignes de la cellule fusionnée
.Cells(i, 1).UnMerge 'on dé-fusionne
'on affecte aux cellules de l'ex-plage fusionnée la bonne valeur
.Cells(i, 1).Offset(-n + 1).Resize(n) = .Cells(i, 1).Offset(-n + 1).Value
End If
Next i
End With
End Sub