Générer la liste d'un ComboBox avec des valeurs uniques

Salut,

Je suis en train d'écrire une macro pour gérer des entrées en stock. Je voudrais que, quand l'opérateur renseigne la référence à rentrer en stock dans un ComboBox, la liste associée soit mise à jour en temps réel avec les références uniques déjà connues dans le stock.

J'ai écrit le code suivant :

Private Sub ComboBox1_Change()

End Sub

Ca marche bien pour les premières références de la liste. A partir de la 13ème référence unique (154ème ligne du stock sur un peu plus de 700), ça reporte toutes les références existantes en doublon.

Si vous avez une explication, je prends...

Merci d'avance.

Manu

Bonjour Manu,

Si vous avez une explication, je prends...

Et moi je répondrais: "si tu as un fichier exemple, on prend aussi!"

Tant qu'à faire, explique, au travers d'un exemple (ou deux) ce que tu veux qu'il se passe et dans quel(s) cas

PS: on n'a pas besoin des 700 références, ni du contenu des autres colonnes (en tout cas, si j'ai compris -au moins- une partie)

Bonjour,

Tout cela me semble incompréhensible et bien compliqué.

La méthode générale de remplissage d'un combo sans doublon est :

ComboBox1.Clear 'remise à zéro
    For j = 1 To Range("A65536").End(xlUp).Row
        ComboBox1 = Range("A" & j) 'récupère les données de la colonne A
        '...et filtre les doublons
        If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("A" & j)
    Next j

Pour une réponse adaptée à ton classeur joindre ton fichier. (même observation que U.Milité)

Voilà le fichier, j'ai juste reporté l'état du stock existant dans un onglet alors qu'il est sur un autre fichier normalement.

Du coup la routine de mise à jour de la liste déroulante fonctionne alors qu'elle ne fonctionne pas avec le fichier séparé.

Galopin, ta méthode ne fonctionne pas, je l'avais déjà essayée. Elle bloque Excel comme si c'était une boucle sans fin.

Manu

105classeur1.xlsm (95.79 Ko)

C'est bon j'ai trouvé.

Certaines références sont constitués de chiffres uniquement, d'autres de caractères alphanumériques. Quand la référence est un nombre, elles est mémorisée en tant que chaine de caractères.

Et donc quand on fait la comparaison à l'occurrence suivante, elle apparait inconnue et est ajoutée à la liste du ComboBox, en tant que texte.

J'ai juste modifié If CStr(Workbooks(Stock).Sheets("Stocks").Cells(i, 6)) = ComboBox1.List(j) et ça marche.

Manu

Rechercher des sujets similaires à "generer liste combobox valeurs uniques"