Liste déroulante sans doublons?

vivbout

XLDnaute Junior
bonjour,

malgré mes recherches je n'ai pas réussi à trouver de solution à mon problème (du moins une solution que j'arrive à comprendre!).

j'ai un tableau de données comportant dans la colonne A une succession de noms dont certains qui se répète très souvent. au dessus de mon tableau, je voudrais créer dans une cellule une liste déroulante reprenant les noms de la colonne A sans les doublons.

j'arrive à faire une liste avec la validation des données, mais cette liste me reprend toutes les lignes de ma colonne A. donc les mêmes noms apparaissent un grand nombre de fois.

y a t'il une solution, sans forcément passer par une macro sur cette cellule?

merci d'avance
 

apt

XLDnaute Impliqué
Re : Liste déroulante sans doublons?

Bonjour vivbout,

Peut-être que cela pourra t'aider :

Code:
'    Cette routine, qui ignore les cellules vides et les valeurs
'    d 'erreur utilise l'objet Dictionnary de l'environnement des scripts.
Private Sub UserForm_Initialize()
    Dim Table As Scripting.Dictionary
    Dim i&, j&, Valide As Boolean, A As Variant
    Set Table = New Scripting.Dictionary
    j = 0
    With Sheets("toto")    ' À adapter
        For Each A In .Range("B2:B" & .Range("A1").End(xlDown).Row)
            'Vérifie si le nom n'est pas une erreur, n'est pas vide
            'n'a pas déjà été récupéré, ne contient pas "utilisateur"
            Valide = True
            If IsError(A) Then
                Valide = False    ' on n'y met pas les valeurs d'erreur
            ElseIf Len(A) = 0 Then
                Valide = False
            ElseIf Table.Exists(A.Value) Then
                Valide = False
            Else    ' test spécial
                If InStr(LCase(A), "utilisateur") > 0 Then Valide = False
            End If
            If Valide Then Table.Add A.Value, j: j = j + 1    'rajoute
        Next
    End With
    For i = 0 To Table.Count - 1
        Debug.Print Table.Keys(i)
        ListBox1.AddItem (Table.Keys(i))
    Next i
    Set Table = Nothing    ' Nettoyage
    End
'    Atention, si tu rencontres une erreur au moment de l    'exécution du code et que celui-ci
'    s'arrête sur Dim Table as Scripting.Dictionary, dans la
'    Fenêtre VBE(visual basic editor) / barre des menus / outils / références /
'    vérifie bien que
'    "Microsoft scripting Runtime" est coché
'    Clément Marcotte, Daniel Maher,
'    Ajouté ou modifié le 11/11/2004 (N°1047)

:)
 

vivbout

XLDnaute Junior
Re : Liste déroulante sans doublons?

:eek: oula oula!!!

mes compétences très succintes en excel m'empêche de comprendre quoi que ce soit à ça !

je n'ai jamais utilisé de script avec excel, pour dire je ne sais même pas où il faut inscrire ces données.:(

mais je ne perd pas espoir, je vais y arriver:D

merci d'avance pour vos lumières
 

Tibo

XLDnaute Barbatruc
Re : Liste déroulante sans doublons?

Bonjour,

Sinon, regarder tout en bas de la page où il y a plusieurs liens qui renvoient vers des fils traitant du sujet.

Si problème persiste, revient avec un petit bout de fichier anonymisé

Bon app

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 767
Membres
103 662
dernier inscrit
rterterert