Dim RngDonn As Range, TabDonnées() As Variant, LDonn As Long, Dic As New Dictionary, _
TabDoublon(), LDoub As Long, TabImport(), LImpt As Long, C As Integer
' '-----Charge tabdonnées avec le portefeuille de commande du jour---------------
Set RngDonn = Sheets("Sheet2").Cells(FirstRw2Var, 1).Resize(LastRw2 + 1 - FirstRw2, 4)
TabDonnées = RngDonn.Value
ReDim TabDoublon(1 To UBound(TabDonnées, 1), 1 To 4), TabImport(1 To UBound(TabDonnées, 1), 1 To 4)
' '---------------------------------------------------------------
'-----Charge le dic avec toute les valeurs---------------
TabRef = Sheets("Sheet1").Cells(FirstRwRéfVar, ColonneRef).Resize(LastRwRéf + 1 - FirstRwRéf, 1).Value
For LD = 1 To UBound(TabRef, 1): Dic(CDbl(TabRef(LD, 1))) = Empty: Next LD 'convertie en string la colonne "Col1" de "sheet1". Supprime tous les doublons automatiquement
LI = Dic.Count
'---------------------------------------------------------------
For LDonn = 1 To UBound(TabDonnées, 1)
If Dic.Exists(TabDonnées(LDonn, ColonneRef + 1)) Then
LDoub = LDoub + 1
For C = 1 To 4: TabDoublon(LDoub, C) = TabDonnées(LDonn, Choose(C, Colonne1, Colonne2, Colonne3, Colonne4)): Next C
Else
Dic.Add TabDonnées(LDonn, ColonneRef + 1), Empty
LImpt = LImpt + 1
For C = 1 To 4: TabImport(LImpt, C) = TabDonnées(LDonn, Choose(C, Colonne1, Colonne2, Colonne3, Colonne4)): Next C
'Rng.Rows(LDonn + 1).Interior.Color = vbGreen
End If
Next LDonn