Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Drop Down récalcitrant

5 réponses
Avatar
Gil HASCH
Bonjour =E0 tous
Mon probl=E8me du jour est l'utilisation d'un Drop Down dans=20
une feuille pour aider =E0 la saisie de certaines valeurs=20
s=E9lectionnables parmi une liste pr=E9d=E9termin=E9e.

A l'ouverture du classeur, je rends le Drop Down invisible
J'intercepte le clic droit sans probl=E8me.
Je contr=F4le pour =EAtre s=FBr que la cellule active se trouve=20
bien dans la zone autoris=E9e pour la saisie.
J'ajuste les dimensions de la Drop Down =E0 celles de la=20
cellule active.
J'initialise - en principe mais c'est l=E0 o=F9 j'ai un=20
probl=E8me- la liste avec le contenu de cellules dans une=20
autre feuille en d=E9finissant sa propri=E9t=E9 FillRange.
Je rends la Drop Down visible avec sa propri=E9t=E9 ListIndex=20
=3D 0.
Une fois la valeur s=E9lectionn=E9e dans la liste, j'inscris=20
dans la cellule active la valeur correspondante et je=20
rends =E0 nouveau invisible la Drop Down.
J'intercepte =E9galement tous les =E9v=E8nements de=20
S=E9lectionChange de la feuille pour rendre invisible la=20
Drop Down. De cette mani=E8re si je clique dans une autre=20
cellule, cela fait dispara=EEtre la Drop Down.
Dans un autre classeur =E7a marche impeccable mais dans=20
celui-l=E0 : Impossible de remplir la DropDown avec la liste=20
des valeurs souhait=E9es : la colonne 3 de la=20
feuille "Groupes et Fonctions Production" de la LigneD=E9but=20
=E0 la LigneFin.

ThisWorkbook.Sheets("Feuille des Productions").DropDowns
("Drop Down 3").ListFillRange =3D "Groupes et Fonctions=20
Production!R" & LigneD=E9but & "C3:R" & LigneFin & "C3"

Cette instruction ne provoque aucun message d'erreur mais=20
la DropDown est vide

L'instruction suivante destin=E9e =E0 initialiser la Drop Down=20
sans aucune valeur pr=E9d=E9termin=E9e provoque l'arr=EAt du=20
programme sur un message d'erreur

ThisWorkbook.Sheets("Feuille des Productions").DropDowns
("Drop Down 3").ListIndex =3D 0

M=EAme si je l'enl=E8ve, j'ai une Drop Down vide.
Elle appara=EEt et dispara=EEt comme il faut mais elle est=20
d=E9sesp=E9r=E9ment vide.
Auriez-vous une id=E9e?

Entre parenth=E8ses si j'ai choisi cette m=E9thode c'est que=20
je dois choisir une valeur parmi une liste mais qu'en plus=20
d'inscrire cette valeur choisie dans la cellule active, il=20
y a d'autres valeurs =E0 inscrire dans les colonnes=20
suivantes de la m=EAme ligne en fonction de la valeur=20
choisie.

J'ai essay=E9 de remplir la Drop Down par la m=E9thode des=20
Clear et AddItem mais devant le nombre de messages=20
d'erreur j'ai arr=EAt=E9 bien vite.

5 réponses

Avatar
JpPradier
Bonjour Gil HASCH

Dans l'explorateur d'objet d'excel 2002, je n'ai pas de 'Dropdowns'. C'est peut-etre là le problème
? Quelle version d'excel utilise tu ?

j-p
Avatar
JpPradier
Bon, après recherche, ça correspond à une zone de liste modifiable. Apparemment, il n'aime pas les
références de type R1C1, essaye avec :

ThisWorkbook.Sheets("Feuille des Productions").DropDowns
("Drop Down 3").ListFillRange = "Groupes et Fonctions
Production!C" & LigneDébut & ":C" & LigneFin

j-p
Avatar
Gil HASH
Après essai, cela ne marche pas mieux
Il n'y a toujours pas de message d'erreur sur la ligne en
question mais sur la ligne suivante :

ThisWorkbook.Sheets("Feuille des Productions").DropDowns
("Drop Down 3").ListIndex = 0

Si j'enlève cette dernière ligne, il n'y a plus d'arrêt
sur erreur mais la liste est toujours vide.

En fait je pense que l'erreur vient du fait que je
n'arrive pas à lui attribuer cette propriété ListFillRange
et que si la liste est vide, je n'arrive pas à mettre à 0
la ListIndex.
Mais l'incompréhensible c'est qu'aucun message ne vient
m'avertir de l'échec sur ListFillRange.
Avatar
Gil HASH
Ca y est!
Après avoir tout essayé il m'a fallu entourer le nom de la
feuille avec deux' et utiliser le mode lettres pour
l'adresse comme tu le suggérais

ThisWorkbook.Sheets("Feuille des Productions").DropDowns
("Drop Down 3").ListFillRange = "'Groupes et Fonctions
Production'!C" & Début & ":C" & fin

Merci pour avoir résolu une bonne partie du blème
Avatar
Gloops
Bonjour,

Je n'ai pas vérifié si on s'en sort avec des fonctions
comme INDIRECT et ADDRESS, mais a priori c'est une
meilleure idée de donner un nom au champ où se trouve la
liste des valeurs.

Ensuite, ListFillRange = NomChamp

Une combobox accepte que le champ de valeurs ne soit pas
dans la même feuille. Les versions précédentes, ça remonte
à un peu plus de trois ans que j'ai joué avec, mais ça me
paraît cohérent que ça marche aussi.

Bon alors par la même occasion, j'ai saisi le nom de champ
dans la boîte de propriétés, ça m'intéresserait que
quelqu'un me raffraichisse l'esprit sur la syntaxe VB,
pour faire la même chose.

Parce que j'ai dit ListFillRange = NomChamp, OK mais il
reste à dire, pour une combobox créée sous Excel 2000, de
quel objet ListFillRange est une propriété ...

-----Message d'origine-----
Bon, après recherche, ça correspond à une zone de liste
modifiable. Apparemment, il n'aime pas les

références de type R1C1, essaye avec :

ThisWorkbook.Sheets("Feuille des Productions").DropDowns
("Drop Down 3").ListFillRange = "Groupes et Fonctions
Production!C" & LigneDébut & ":C" & LigneFin

j-p

.