[VBA] Supprimer doublon + alimenter tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

suistrop

XLDnaute Impliqué
Salut,

je voudrais parcourir une colonne et garder les valeurs que je rencontre dans un tableau ( et non ailleurs sur la feuille ) sans doublons bien sur 🙂

Comme vous pouvez le voir au début je dois donnée une taille a mon tableau pour le déclarer avec que je le voudrais variable , je pourrais encore rajouter un autre tableau mais c est pas le probleme.

Code:
Sub toto()
    Dim tab1(15)
    For i = 1 To Range("A65536").End(xlUp).Row
            nomtab1 = Cells(i, 1)
            ajouter = True
        For Z = LBound(tab1) To UBound(tab1)
            If nomtab1 = tab1(Z) Then
                ajouter = False
            End If
        Next Z
        If ajouter = True Then
            tab1(t) = nomtab1
            t = t + 1
        End If
    Next i
boulet = 2
End Sub
JE VOUDRAIS QUELQUE CHOSE DE MOINS BARBARE !!!
je veux qu' a la fin je puisse utiliser mon tableau sans doublons sous vba 🙂


Merci a vous
 

Pièces jointes

Re : [VBA] Supprimer doublon + alimenter tableau

Bonsoir suistrop,

je te propose d'utiliser l'objet Dictionary:

Code:
Sub toto()
  Dim Tableau()
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In Range([A1], [A65536].End(xlUp))
'si la donnée n'existe pas encore dans le dictionnaire
     If Not MonDico.Exists(c.Value) Then
'on l'ajoute dans le dictionnaire...
        MonDico.Add c.Value, c.Value
'...et dans le tableau VBA ;-)
        ReDim Tableau(1 To MonDico.Count)
        Tableau(MonDico.Count) = c.Value
        Debug.Print MonDico.Count, Tableau(MonDico.Count)
      End If
  Next c
End Sub
Bonne soirée.

Edit: si tu ne connais pas Debug.Print, affiche la fenêtre d'exécution et regarde ce qu'il se passe.
 
Dernière édition:
Re : [VBA] Supprimer doublon + alimenter tableau

@skoobi,

Merci pour ton idée du Dictionary. C'est génial ! Pour remplir une ListBox avec les uniques d'un Array de 20.000 noms, si les uniques sont 10.000, par exemple, il me faut 10 secondes (en utilisant la propriété ListIndex=-1) alors qu'avec ton code c'est à peine une !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
241
Réponses
2
Affichages
202
Réponses
8
Affichages
233
Réponses
2
Affichages
124
Réponses
10
Affichages
281
Réponses
5
Affichages
232
Réponses
4
Affichages
179
Retour