Supprime les doublons dans un tableau à deux dimensions
Attention, ce code filtre les données numériques.
Pour des données alpha, supprimer partout cstr(....)

Code : La fonction : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
 
Function Nettoyage(Tablo As Variant)
Dim collect As New Collection, Tablo2(), i As byte, j As byte
    'Crée la collection - Erreur si doublon
    For i = 1 To 10
        For j = 1 To 50
            On Error Resume Next
            collect.Add Tablo(i, j), CStr(Tablo(i, j))
            On Error GoTo 0
        Next
 
        'Création du tablo2 pour chaque valeur de i
        ReDim Preserve Tablo2(10, collect.Count)
        For j = 1 To collect.Count
            Tablo2(i, j) = collect(1)
            collect.Remove 1
        Next
    Next
    Nettoyage = Tablo2
End Function

Code Le test sur un tableau à 2 dimensions rempli de données aléatoires : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Test() 
Dim Tablo2 As Variant, Tablo(1 To 10, 1 To 50), i As Byte, j As Byte
    For i = 1 To 10
        For j = 1 To 50
            Randomize
            Tablo(i, j) = Int((Rnd * 50) + 1)
        Next
    Next
 
    Tablo2 = Nettoyage(Tablo)
 
    'vérification : Données placées sur une feuille de calculs
    For i = 1 To 10
        For j = 1 To UBound(Tablo2, 2)
            Worksheets("feuil3").Cells(i, j) = Tablo2(i, j)
        Next
    Next
End Sub