Bonjour toute le monde,
Après quelques heures de recherche, je ne parviens pas à comprendre d'où vient mon problème et je me décide à poster.
Rapide description :
J'ai une colonne Excel contenant des données en doublon. Je souhaite supprimer les doublons et enregistrer la liste résultante dans un tableau. Je veux pouvoir exploiter ce tableau dans une procédure.
J'ai trouver un bout de code sur un forum qui fait ce que je souhaite mais je ne parviens pas à exploiter le tableau dans une autre procédure.
Voici mon code exhaustif :
et voici ce que m'affiche ma fenêtre d'Exécution :
Code : 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
22
23
24
25 Function SuppDoublon(sheetName As String, colNumb As Integer) As Variant() Dim Tableau() Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(Sheets(sheetName).Cells(2, colNumb), Sheets(sheetName).Cells(65536, colNumb).End(xlUp)) If Not MonDico.Exists(c.Value) Then 'si la donnée n'existe pas encore dans le dictionnaire MonDico.Add c.Value, c.Value 'on l'ajoute dans le dictionnaire... ReDim Tableau(1 To MonDico.Count) '...et dans le tableau VBA ;-) Tableau(MonDico.Count) = c.Value End If Debug.Print MonDico.Count, Tableau(MonDico.Count) Next c SuppDoublon = Tableau End Function Sub essai() Dim Tabl() Tabl = SuppDoublon("Journal", 4) derLigne = UBound(Tabl) For i = 1 To derLigne Debug.Print i & "->" & Tabl(i) Next i End Sub
Je ne comprends pas pourquoi mes 9 premières lignes sont "vides" lorsque je récupère le tableau avec ma procédure essai alors qu'elles sont "pleines" dans ma fonction.1 BL0001-CDL
2 BL0002-Sita
3 BL0003-CDL
3 BL0003-CDL
3 BL0003-CDL
4 BL0004-Sita
5 BL0005-Ecof
5 BL0005-Ecof
6 BL0006-Sita
7 BL0007-Sita
8 BL0008-Ecof
9 BL0009-CDL
10 BL0010-CDL
1->
2->
3->
4->
5->
6->
7->
8->
9->
10->BL0010-CDL
J'imagine que c'est tout bête et je remercie par avance celui qui me l'expliquera.
Partager