J'ai pris tes codes sans le tri
pour le tri je me suis servi de l'enregistreur (sûrement à réduire les codes).
j'ai aussi ajouté une ligne pour supprimer les lignes vides si on reclic sur la macro
Le temps d'exécution est de 2 secondes au lieu de 2 minutes pour 481 lignes.
Sub Tri_Entete_Lieu()
'tri la colonne A puis insère une ligne
' Tri_Entete Macro
Dim I As Long
Dim DernièreLigne As Long
DernièreLigne = ActiveSheet.UsedRange.Row - 1
DernièreLigne = DernièreLigne + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
Call SupprimerLignes_Vides ' pour éviter d'avoir plusieurs lignes vides au lieu d'1 seule, si on reclic sur la macro
'
'------------ tri avec l'enregistreur --------------
ActiveWorkbook.Worksheets("Feuil5").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil5").Sort.SortFields.Add Key:=Range( _
"A2:A" & DernièreLigne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Feuil5").Sort
.SetRange Range("A1:H" & DernièreLigne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'---------------------------------
'********** Code de DanielC sans le tri ************ insère une ligne
'-------- ligne de tri supprimée ------> Range("c1", Cells(Rows.Count, 1).End(xlUp)).Resize(, 4).Sort [c1], xlAscending, Header:=xlYes
For I = Cells(Rows.Count, 1).End(xlUp).Row - 1 To 2 Step -1
If Cells(I, 1) <> Cells(I + 1, 1) Then Cells(I + 1, 1).EntireRow.Insert
Next I
'****************
Range("F4").Select
End Sub
A+