Combobox : bug quand une seule valeur

Résolu
cs_lucky78 Messages postés 3 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 12 juin 2012 - 12 juin 2012 à 18:15
cs_lucky78 Messages postés 3 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 12 juin 2012 - 12 juin 2012 à 23:06
Bonjour à tous,

Voila je me tourne vers vous parce que j'ai un problème en VBA avec une combobox remplie depuis une liste Excel à l'ouverture d'un userform. Cette liste n'est pas figée, elle est redéfinie à chaque fois et un end(xlup) permet de définir la taille de la combobox. Le problème est que tout marche bien quand il y a 2 valeurs ou plus dans cette liste, par contre lorsqu'il n'y en a qu'une, j'ai une erreur lors de l'initialisation de la combobox : "Impossible de définir la propriété List. Index de table de propriétés non valide ". Et je ne comprends pas bien pourquoi....

J'ai contourné le problème en mettant un Range fixe de manière à avoir toujours 5 valeurs dans ma combobox mais c'est loin d'être l'idéal, alors si quelqu'un pouvait m'aider ça serait génial !!!

Merci d'avance pour votre aide !

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 juin 2012 à 20:28
Pour que tu comprennes mieux. Et que tu n'appelles plus bug" ce qui n'est pas un bug.
Ton code, tel qu'il est, tend à dresser un tableau à 2 dimensions, que tu envoies ensuite vers ta combo.
Un tel tableau ne peut toutefois pas concerner une seule cellule.
Fais donc cette expérience :
With Sheets("Lists")
   toto = .Range("J2:J" & .Range("J500").End(xlUp).Row).Value
   msgbox ubound(toto) 
End With

Tout se passera bien si plus d'un rang, mais tu auras une erreur si un seul rang, bien évidemment.
Il te faudrait alors gérer, avec ta méthode, deux cas : un pour si plusieurs rangs (comme tu le fais) et un si moins de deux rangs (en alimentant alors avec additem) !
Lourd lourd et inutilement lourd alors que l'utilisation de la propriété RowSource fait tout ce travail-là !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 juin 2012 à 18:32
Bonjour,
Je ne parviens pas à générer cette situation, malgré mes efforts.
Montre-nous donc le code utilisé et les propriétés de ta combo.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_lucky78 Messages postés 3 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 12 juin 2012
12 juin 2012 à 19:13
La liste est générée correctement, je ne pense pas que le problème vienne de là donc je ne mets pas le code. Ensuite j'appelle l'userform avec .Show et j'initialise la combobox comme ça :

Private Sub UserForm_Initialize()
 
With Sheets("Lists")
   ComboBoxProjet.List = .Range("J2:J" & .Range("J500").End(xlUp).Row).Value
    
End With

End Sub


L'erreur survient à ce moment là.

Pour les propriétés de la combobox, il doit y avoir un moyen simple de les récupérer mais je ne le connais pas. Sinon quelles sont les propriétés que tu aurais besoin de te connaitre ?

Merci de te pencher sur mon problème en tout cas !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 juin 2012 à 19:32
1) Affiche donc la fenêtre des propriétés !
2) tu t'y prends de mauvaise manière : intéresse-toi donc à la propriété RowSource et utilise-la, plutôt que de faire comme tu le fais. En d'autres termes : lie ta combo à tes cellules.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lucky78 Messages postés 3 Date d'inscription dimanche 14 mars 2010 Statut Membre Dernière intervention 12 juin 2012
12 juin 2012 à 23:06
Ok je comprends mieux pourquoi seul le cas avec une seule valeur ne passait pas !
Je teste dès demain avec Rowsource, ça devrait mieux aller, merci beaucoup !
0
Rejoignez-nous