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
Partager