re,
@Klin89, je pense que votre macro est le plus rapide et le plus simple
2 petites améliorations
1. Ajouter "Option compare texte" en haut du module pour que les masjuscules et miniscules sont traités ensemble (Italie et italie en B2&B3)
2. Mettez ces "alignements" au début, comme çà, on le fait en une fois et pour toute la plage
Option Explicit
Option Compare Text
Sub Klin89()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim derLig As Long, i As Long, debCol1_a_Fus As Long, debCol2_a_Fus As Long, t
t = Timer
debCol1_a_Fus = 2: debCol2_a_Fus = 2
With Sheets(1) '1ère feuille du classeur
derLig = .Cells(.Rows.Count, 1).End(xlUp).Row
With .Cells(2, 1).Resize(derLig - 1, 2)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
For i = 2 To derLig
If .Cells(i, 1) <> .Cells(i + 1, 1) Then
.Range(.Cells(debCol1_a_Fus, 1), .Cells(i, 1)).Merge
.Range(.Cells(debCol2_a_Fus, 2), .Cells(i, 2)).Merge
debCol1_a_Fus = i + 1
debCol2_a_Fus = i + 1
ElseIf .Cells(i, 2) <> .Cells(i + 1, 2) Then
.Range(.Cells(debCol2_a_Fus, 2), .Cells(i, 2)).Merge
debCol2_a_Fus = i + 1
End If
Next
End With
Application.DisplayAlerts = False
Application.ScreenUpdating = True
MsgBox Timer - t
End Sub