Bonjour
Bonnes fêtes
Tu t'en fou un peu de ton programme, tu donnes un exemple sans rapport avec tes données
A tester
Option Explicit
Sub doublon_G()
Dim Col As Integer, ColDer As Integer, K As Integer
Dim J As Long, JJ As Long, LigDer As Long
Dim tablo
Application.ScreenUpdating = False
For Col = 1 To 100
If Cells(1, Col) = "isin" Then Exit For
Next Col
LigDer = Cells(Rows.Count, Col).End(xlUp).Row
ColDer = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(1, 1), Cells(LigDer, ColDer)).Sort Key1:=Cells(1, Col), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
tablo = Range(Cells(1, 1), Cells(LigDer, ColDer))
For J = LigDer To 3 Step -1
For JJ = J - 1 To 2 Step -1
If tablo(JJ, Col) = tablo(J, Col) Then
For K = 1 To ColDer
If tablo(JJ, K) <> "" And tablo(J, K) = "" Then
tablo(J, K) = tablo(JJ, K)
End If
tablo(JJ, K) = ""
Next K
Else
Exit For
End If
Next JJ
Next J
Range(Cells(1, 1), Cells(LigDer, ColDer)) = tablo
Range(Cells(1, 1), Cells(LigDer, ColDer)).Sort Key1:=Cells(1, Col), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
On Error Resume Next
Range(Cells(1, Col), Cells(LigDer, Col)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error Goto 0
End Sub