Sub Remplace2()
debut = Time
Dim Tab_Intitulé() As Variant
Dim Tab_Compte() As Variant
Dim Tab_Original() As Variant
'Dim dico_Intit As New Dictionary
'Dim dico_Compte As New Dictionary
Set dico_Intit = CreateObject("Scripting.Dictionary")
Set dico_Compte = CreateObject("Scripting.Dictionary")
 
'on récupère les données à traiter
With Sheets("Remplacement intitulé") 'tableau des changements d'intitulé
    LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
    Tab_Intitulé = .Range("A2:B" & LastLine).Value
End With
With Sheets("Remplacement Compte") 'tableau des changements de compte
    LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
    Tab_Compte = .Range("A2:B" & LastLine).Value
End With
For i = LBound(Tab_Intitulé, 1) To UBound(Tab_Intitulé, 1) 'pour chaque intitulé
    clé = UCase(Tab_Intitulé(i, 1))
    Valeur = UCase(Tab_Intitulé(i, 2))
    If Not dico_Intit.Exists(clé) Then
        dico_Intit.Add clé, Valeur
    End If
Next i
For i = LBound(Tab_Compte, 1) To UBound(Tab_Compte, 1) 'pour chaque Compte
    clé = UCase(Tab_Compte(i, 1))
    Valeur = UCase(Tab_Compte(i, 2))
    
    If Not dico_Compte.Exists(clé) Then
        dico_Compte.Add clé, Valeur
    End If
Next i
With Sheets("Original") 'tableau à traiter dans la feuille "Original"
    LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
    Tab_Original = .Range("E2:F" & LastLine).Value
End With
For i = LBound(Tab_Original, 1) To UBound(Tab_Original, 1)
    'MsgBox dico_Intit.exists(Tab_Original(i, 2))
    If dico_Compte.Exists(Tab_Original(i, 1)) Then
        Tab_Original(i, 1) = dico_Compte(Tab_Original(i, 1))
    End If
    
    If dico_Intit.Exists(Tab_Original(i, 2)) Then
        Tab_Original(i, 2) = dico_Intit(Tab_Original(i, 2))
    End If
Next i
With Sheets("Original")
    .Range("E2").Resize(UBound(Tab_Original, 1), UBound(Tab_Original, 2)) = Tab_Original
End With
fin = Time
MsgBox Format(fin - debut, "hh/mm/ss")
End Sub