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.
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
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.
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.
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.
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
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
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
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
.
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
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