Eviter doublons dans Combobox

Ok. pour les précisions. Le fait d'avoir le BL dans une colonne différente apporte des changements un peu partout dans le code Valider mais aussi dans le module 1

Pouvez-vous confirmer que :
- Ijinus & Autres --> le num Serie colonne C va dans la colonne F de historique et le type matériel colonne E va en colonne G de Historique
- Hydreka -> Le num serie colonne D va dans la colonne F de historique et le type matériel colonne F va en colonne G de Historique

Oui c'est tout à fait ça !

Votre fichier en retour

Une fois le code valider exécuté, les checkbox1 et 2 sont décochées, et combobox2 et 3 vidées. Cela afin de pouvoir relancer une nouvelle Validation sans devoir fermer l'userform

Merci !

Désolé je n'ai pas eu le temps de regarder le fichier depuis vendredi. J'y regarde demain.

Bonjour,

Merci pour ce retour, cependant, plusieurs petits soucis sont encore présents :

1- Pour la validation dans le cas d'un matériel interne,

Dans la feuille inventaire :

- la ligne remplie est correcte, mais l'indice de remplissage de colonne est décalé de 1.

capture

Dans l'image ci-dessus on voit que le Non se rempli dans la colonne H au lieu d'être mis dans la colonne I, et que l'Agence se rempli dans la colonne K au lieu de la colonne L.

2 - Pour la validation dans le cas d'un matériel externe :

IJINUS et Hydreka : Pas de problème

Autres : Aucune erreur n'est mentionnée, mais la feuille "historique réservation" ne se remplie pas.

Bonjour,

1. la ligne remplie est correcte, mais l'indice de remplissage de colonne est décalé de 1

- Allez dans le code "Valider" à cette ligne

 .Range.item(lig, 7) = "Non"

- Le chiffre 7 correspond à la colonne --> Remplacez le 7 par 8
- augmentez aussi de 1 dans les trois lignes suivantes (donc 8 --> 9, 9 -> 10 et 10 -> 11)

2. Aucune erreur n'est mentionnée, mais la feuille "historique réservation" ne se remplie pas.

- Allez dans le code "Valider" à la ligne If cel.value = Combobox3.value then
- Il faut ajouter l'instruction "Cstr". La ligne devient --> If Cstr(cel.value) = Combobox3.value then

Cordialement

Edit : Une fois les tests terminés et que c'est ok, vous pouvez supprimer la colonne A dans la feuille INVENTAIRE

bonjour à tous

je répond simplement a la question de départ a savoir "remplir une combobox sans doublons"

je vous propose une solution sans dico ou collection et (sans deleter un item dans boucle a reculons [procedure plus longue en terme de temps])

tout simplement en testant le match dans l'array et donc en controlant l'index de match dans la boucle ( fonctionne avec MAC)

exemple tres simple

Private Sub UserForm_Activate()
    Dim tbl
    tbl = Application.Transpose(Feuil1.Range("A1", Feuil1.Cells(Rows.Count, "A").End(xlUp)).Value)
    With ComboBox1
        For i = 1 To UBound(tbl)
            x = Application.Match(tbl(i), tbl, 0)
            If x = i Then .AddItem tbl(i)
        Next
    End With
End Sub

Merci DAN ça marche super maintenant!

Merci Particktoulon pour cette petite astuce !

Ok. Parfait

@ patricktoulon : heu après 4 pages d'échanges....

Ce point était déjà solutionné au début

bonjour Dan

j'ai juste donné une méthode qui n'avait pas été donné ,évitant le scripting runtime et les manipulation directes sur combo ( lourdes en conso d'UC)

je suis un lecteur comme les autres et me taper la lecture de 4/5 pages (qui n'ont rien a voir avec le titre) ou télécharger x fichiers pour avoir une solution qui représente 4/5 lignes de code, c'est moyen

amicalement

Rechercher des sujets similaires à "eviter doublons combobox"