Spitnolan08
XLDnaute Barbatruc
Bonjour à tous,
J'ai un souci : dans le cadre d'un userform, j'ai une procédure (Initialize) utilisant une collection pour ne charger que des occurences uniques dans une listbox comme il se devrait.
Ca marche dans d'autres procédures de mes projets, d'ailleurs.
Mais là, la collection ne fait pas le ménage. Pourriez vous me dire pourquoi ?
Je vous joint 2 codes : l'un simplifié pour test simple (La Liste contient six fois la valeur 6 et la collection contient six fois la valeur 6.
L'autre est celui de mon UF, où SaisieCommercial est un UF, LotsDispo2 une ListBox multiselect de 27 colonnes.
La première colonne peut comporter plusieurs fois le même numéro.
Dans cette procédure, le but est de récupérer les occurences uniques des listes sélectionnées pour pouvoir les manipuler dans d'autres listbox.
Mais aucun des deux ne livre de résultat unique. Dans le cas réel si je sélectionne deux lignes dont le contenu d"e la première colonne est le même, la collection contient deux fois ce nombre.
J'ai même envisagé que ma listbox initiale, étant multicolonnes, le problème venait du fait que la valeur était considérée comme différente à chaque fois car les autres colonnes sont différentes, bien que la valeur que je présente à la collection n'est qu'un nombre. D'où mon essai plus simple ci-dessus.
Où est l'erreur ?
Merci de votre attention
J'ai un souci : dans le cadre d'un userform, j'ai une procédure (Initialize) utilisant une collection pour ne charger que des occurences uniques dans une listbox comme il se devrait.
Ca marche dans d'autres procédures de mes projets, d'ailleurs.
Mais là, la collection ne fait pas le ménage. Pourriez vous me dire pourquoi ?
Je vous joint 2 codes : l'un simplifié pour test simple (La Liste contient six fois la valeur 6 et la collection contient six fois la valeur 6.
Code:
Dim i As Byte
Dim Unique As Collection
Dim Liste(6)
Set Unique = New Collection
For i = 1 To 6
Liste(i) = 6
Next i
For i = 1 To 6
Unique.Add Liste(i)
Next i
For Each Valeur In Unique
Debug.Print Valeur
Next Valeur
L'autre est celui de mon UF, où SaisieCommercial est un UF, LotsDispo2 une ListBox multiselect de 27 colonnes.
La première colonne peut comporter plusieurs fois le même numéro.
Dans cette procédure, le but est de récupérer les occurences uniques des listes sélectionnées pour pouvoir les manipuler dans d'autres listbox.
Code:
Dim i As Byte
Dim LotRegroupt As Integer
Dim Tablo() As Byte
Dim Unique As Collection
For i = 0 To SaisieCommercial.LotsDispo2.ListCount - 1
If SaisieCommercial.LotsDispo2.Selected(i) = True Then
LotRegroupt = SaisieCommercial.LotsDispo2.List(i)
Unique.Add SaisieCommercial.LotsDispo2.List(i)
End If
Next i
For Each Valeur In Unique
Debug.Print Valeur
Next Valeur
J'ai même envisagé que ma listbox initiale, étant multicolonnes, le problème venait du fait que la valeur était considérée comme différente à chaque fois car les autres colonnes sont différentes, bien que la valeur que je présente à la collection n'est qu'un nombre. D'où mon essai plus simple ci-dessus.
Où est l'erreur ?
Merci de votre attention
Dernière édition: