XL 2010 Remplissage Combobox - Propriété List vs méthode Additem

vgendron

XLDnaute Barbatruc
Bonjour à toutes et tous

Je suis en train de travailler sur un sujet du forum dans lequel j'ai besoin de charger un combobox à partir d'une table structurée
et il y a un truc qui m'échappe:

lorsque j'utilise la propriété List du combobox, il semble y avoir une limitation

si la table ne contient aucune ligne de donnée, le code bug.== >OK, ca. je comprend: affecter nothing à une list.. c'est vilain
mais si la table contient UNE seule ligne==> ca bug aussi.. et la. je ne vois pas pourquoi==> apparemment, il faut au moins 2 lignes..?

en PJ:
3 tables: Tab1 /Tab2 / Ta3 avec chacune un nombre de lignes (Listrows.count)
sur le formulaire
3 combo qui sont chargés avec la propriété list==> les 2 premiers provoquent un bug (si on enlève le "on error resume next)
3 autres combo chargés avec la méthode additem

la question: s'agit il d'une limitation (au moins 2 lignes) ou est ce du à un problème d'utilisation?
 

Pièces jointes

  • Remplissage Combobox.xlsm
    25.8 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

1er cas : DataBodyRange = nothing
2ème cas : une seule valeur est retournée, pas un tableau
3ème cas : un tableau est retourné, tout est ok pour List

Ce sont les limitations de .list

Après avoir testé la présence de DataBodyRange :
Code:
Dim Arr as variant
Arr = .ListObjects("Tab_Test").ListColumns("Ind").DataBodyRange.Value
If IsArray(Arr) then MaCombobox.List = Arr else MaCombobox.Additem Arr
 

vgendron

XLDnaute Barbatruc
C'est quand meme un peu tordu.. selon le nombre de lignes, on ne doit pas utiliser la meme propriété...
donc. pour les gars d'excel qui ont développé ca:
une liste, c'est au moins 2 éléments
mais si UN seul élément. alors;. on met Colonne !!
je sais pas ce qu'ils fument mais c'est fort

bon.. pour éviter tout pb, je vais utiliser du additem..

Merci Hasco pour les précisions: donc effectivement c'est le type retourné qui pose problème
 

vgendron

XLDnaute Barbatruc
re
petite précision @Hasco il en manque 1
1er cas : DataBodyRange = nothing
2ème cas : une seule valeur est retournée, pas un tableau
3ème cas : un tableau est retourné, tout est ok pour List
4 ème cas le tableau n'a qu'une ligne et x colonne et donc tout est ok pour .column
sauf que Combobox2.column=listobjects("Tab2").databodyrange.value
ca me liste les éléments de toutes les colonnes de la ligne unique
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

En pièce jointe, une tentative avec une autre façon de procéder.

Je ne sais pas si ça fonctionne sur PC, mais c'est sûr que ça ne fonctionne pas dans une Pomme. :(
 

Pièces jointes

  • Remplissage-Combobox_(TooFatBoy-v1).xlsm
    26.5 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 130
dernier inscrit
FRCRUNGR