zone déroulante VBA help

jeromestas

XLDnaute Nouveau
Bonjour

j'aurais besoin de vos lumières !!!!!


voilà je vais être bref et explicit je l'espère :)

j'ai une liste d'élément sur un classeur A

ex :
( classeur A)
A B
1 livre Blanc
2 pomme jaune
3 poire verte
4 cerise rouge
5 caramel bruin


dans une autre classeur ( B) je désire créer une liste déroulante appelant
les éléments de la colonne A dans la cellule A1. jusque là je pense que cela ne devrait pas poser de problème.

Ensuite je désire lorsque je sélectionne un élément de la liste déroulante (classeur B cellule A1)que je puisse afficher aussi dans mon classeur B cellule B1 l'élément correspond de la même ligne du classeur A

soit : si je sélectionne poire que Verte s'inscrive dans le classeur B dans la cellule B1.

Je débute et recherche le code vba d'une tel apllication.

Voilà en vous remerciant d'avance
 

job75

XLDnaute Barbatruc
Re : zone déroulante VBA help

Bonsoir Jérome,

A priori, pas besoin de code VBA. Par ailleurs vous parlez bien de 2 classeurs, et non pas de 2 feuilles d'un même classeur.

1) Dans le classeur B définir (menu Insertion-Nom) le nom "plage" en faisant référence (exemple) à la plage A1:A5 de la Feuil1 du classeur A. La formule est du type =[A.xls]Feuil1!$A$1:$A$5

2) Dans le classeur B créer une zone de liste déroulante avec la barre de menu Formulaires. Clic droit sur cet objet et Format de contrôle :
- Plage d'entrée : écrire : plage
- Cellule liée : C1 (la colonne C sera de préférence masquée)
- Nombre de lignes : 5 (sur l'exemple).

3) Dans le classeur B entrer les formules :

=DECALER(plage;C1-1;0;1) en A1
=DECALER(plage;C1-1;1;1) en B1

A+

Edit : une précision : on ne peut pas créer la liste déroulante par Données-Validation, car la liste est dans un classeur différent.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : zone déroulante VBA help

Re,

Une autre solution, probablement plus élégante, et toujours sans VBA :

1) Transférer le tableau du classeur A dans les cellules A1:B5 d'une autre feuille (qui sera masquée) du classeur B, par des formules du type : =[A.xls]Feuil1!A1

2) Donner le nom "plage" à la plage $A$1:$A$5 de cette feuille du classeur B

3) Dans la feuille de travail du classeur B, sélectionner la cellule A1, puis menu Données Validation-Options et Autoriser : Liste. Puis Source : écrire: =plage. La liste déroulante apparaît quand la cellule A1 est sélectionnée.

4) Dans la cellule B1 de cette même feuille, entrer la formule :

=SI(ESTERREUR(EQUIV(A1;plage;0));"";DECALER(plage;EQUIV(A1;plage;0)-1;1;1))

A+
 

Discussions similaires

Réponses
2
Affichages
485

Statistiques des forums

Discussions
312 691
Messages
2 090 992
Membres
104 722
dernier inscrit
Tuaneps