Cette clé est déja utilisée (ajout dans une collection pour listbox)

Dim.Reichart

XLDnaute Occasionnel
Bonjour à tous,
J'ai un souci avec mon code que voici:
VB:
With Worksheets("Viaduc de l'Arc")
Dim j as long, i as long, Unique as New Collection, Etp as range
set Unique = nothing
j = .Range("a3").End(xlDown).Row

    'Boucle sur la colonne A, crée une liste sans doublon
    For i = 3 To j
    On Error Resume Next
    Unique.Add .Cells(i, 1), CStr(.Cells(i, 1))
    On Error GoTo 0
    Next i
End With
    'Affiche la liste d'entreprises
    For Each Etp In Unique
    Me.ListBox1.AddItem Etp
    Next Etp
J'utilise la collection Unique pour lister mes items de la colonne A sans doublon, puis je remplis ma listbox avec les items de la collection.
Ce que je ne comprend pas, c'est qu'avant ça fonctionnait, et je n'ai pas touché cette partie du code, j'ai uniquement prolongé le programme dans un autre userform.
Maintenant, il me dit "Cette clé est déjà utilisée", alors que j'ai mis les On error (j'ai même ajouté le second alors que je n'en vois pas l'interêt, mais cela fait toujours la même erreur...).
Si vous saviez m'expliquer ce qui coince, cela me rendrait service.
Merci d'avance.
 

Dim.Reichart

XLDnaute Occasionnel
Je viens d'anonymiser mon fichier, mais ca ne me semble pas forcement un bon plan, vu la quantité de procédures déjà créées (tout fonctionnait jusqu'à hier, lorsque j'ai ajouté le commandbutton3 de la 3e USF UsfEmp).
Le code cité précedemment se trouve dans l'UsfEtp, partie initialize.
Merci pour toute aide.
 

Pièces jointes

  • Fichier exemple.xlsb
    47.3 KB · Affichages: 10

Dim.Reichart

XLDnaute Occasionnel
Bonjour,
Est-ce que mon problème est insoluble, mal expliqué, autre?
Est-ce que le fichier ne convient pas?
Est-ce qu'il faut plus d'informations, explications, soudoyer a l'aide de pain au chocolat?
Bref, ça m'etonne de n'avoir aucune réponse depuis hier, même si je sais que vous n'êtes pas à ma disposition bien sur.

Merci d'avance pour toute aide, critique ou conseil, fut-il constructif ou non.
 

ChTi160

XLDnaute Barbatruc
Bonsour Dim.Reichart
je nr comprendd pas:
”' j ai uniquement prolongé le programme dans un autre userform.”
peut etre faut il reinitialiser Unique ,si autre utilisation!
non teste (pas d ordi)
jean marie
Edit : Bonsoir JB
 

Dim.Reichart

XLDnaute Occasionnel
Merci a vous deux.
@BOISGONTIER du coup, je ne comprend pas pourquoi ca ne fonctionne plus chez moi. Je me suis inspiré de solutions trouvées sur ton site pour créer cette parties et d'autres aussi. Il me semble avoir appliqué tous les conseils et sécurités cités, mais je ne suis pas a l'abri d'un oubli...
@ChTi160 je ne me sers plus d'Unique une fois la listbox remplie, mais je l'initialise quand même en début d'USF (Unique=Nothing).
Je regarderais mieux lundi, j'essayerais de desactiver la 3e USF, vu que c'est à ce moment que cela a commencé a ne plus fonctionner...
Mais si vous avez d'autres théories ou explications, je suis preneur tout de même.

Merci pour le coup d'œil en tout cas.
 

Dim.Reichart

XLDnaute Occasionnel
Bonjour,
@ChTi160 je le fais lors de la définition de variable, puis je la vide avec Set Unique= Nothing pour etre sur de ne pas avoir de "reste" des utilisations précédentes.
Est-ce que cela peut poser problème?

EDIT: Après reflexion, lors de la definition de variable, j'utilise Dim Unique as New Collection, et c'est sensiblement différent. Je teste cette solution ce soir, puis je reviens vers vous.
 
Dernière édition:

Dim.Reichart

XLDnaute Occasionnel
Merci Dranreb, c'était ça, je ne me souvenais pas l'avoir coché, mais c'était pour un autre fichier le mois dernier (EDIT: ça devait être la veille, vu que ça fonctionnait avant, bref).
Je passe en résolu, et je devrais revenir demain avec un autre souci...
Merci également aux autres d'avoir pris le temps de tester, chercher et réflechir.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma