Liste de choix sur 2 colonnes
Résolu
fafs
Messages postés
17
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je cherche à afficher 2 colonnes dans une liste de choix et qu'il n'y ait que les données d'une seule colonne dans la case de résultat
exemple
Colonne A - Colonne B
Pomme Verte
Pommes rouge
Pomme jaune
je voudrais une liste déroulante qui puisse afficher :
Pomme verte
Pomme rouge
Pomme jaune
et le résutat affiché serait verte si j'ai sélectionné Pomme verte. (le résultat sera sur une autre feuille). je peux arriver à cette solution en passant par la cr"ation de colonnes supplémentaires qui afficheraient Pomme verte (=A1&A2)
puis ensuite une autre rechercher verticale en partant de pomme verte pour afficher "verte" mais cela allourdi ma base qui est déjà bien lourde
j'ai tout fouillé l'aide excel / forum ... mais je n'arrive pas à trouver et mes conaissances en VBA sont nulles
merci d'avance pour votre aide
je cherche à afficher 2 colonnes dans une liste de choix et qu'il n'y ait que les données d'une seule colonne dans la case de résultat
exemple
Colonne A - Colonne B
Pomme Verte
Pommes rouge
Pomme jaune
je voudrais une liste déroulante qui puisse afficher :
Pomme verte
Pomme rouge
Pomme jaune
et le résutat affiché serait verte si j'ai sélectionné Pomme verte. (le résultat sera sur une autre feuille). je peux arriver à cette solution en passant par la cr"ation de colonnes supplémentaires qui afficheraient Pomme verte (=A1&A2)
puis ensuite une autre rechercher verticale en partant de pomme verte pour afficher "verte" mais cela allourdi ma base qui est déjà bien lourde
j'ai tout fouillé l'aide excel / forum ... mais je n'arrive pas à trouver et mes conaissances en VBA sont nulles
merci d'avance pour votre aide
A voir également:
- Liste de choix sur 2 colonnes
- Liste déroulante excel - Guide
- Faire 2 colonnes sur word - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Liste déroulante en cascade - Guide
17 réponses
Bonjour,
Je pense que c'est ça que tu veux:
Utiliser une combobox(liste déroulante) de la "boite à outils Contrôles' (menu affichage / barres d'outils)
Ta liste en A1:B4 avec une ligne de titre en 1:1
Dessiner la combobox et en mode construction (l'icone avec une regle, une équerre et un crayon) cliquer-droit dessus et 'Propriétés'.
Changer les propriétés :
BoundColumn: 2
ColumnCount: 2
ColumnHeads: True (si tu inclus une ligne de titres)
LinkedCell: Feuil1!$D$1 (destination de la valeur sélectionnée, changer le nom de la feuille si besoin)
ListFillRange: $A$2$B$4
Pour LinkedCell et ListFillRange c'est mieux de nommer les zones et d'utiliser les noms.
Désactiver le mode construction.
Exemple: http://www.cijoint.fr/cij49890396433353.xls
eric
Je pense que c'est ça que tu veux:
Utiliser une combobox(liste déroulante) de la "boite à outils Contrôles' (menu affichage / barres d'outils)
Ta liste en A1:B4 avec une ligne de titre en 1:1
Dessiner la combobox et en mode construction (l'icone avec une regle, une équerre et un crayon) cliquer-droit dessus et 'Propriétés'.
Changer les propriétés :
BoundColumn: 2
ColumnCount: 2
ColumnHeads: True (si tu inclus une ligne de titres)
LinkedCell: Feuil1!$D$1 (destination de la valeur sélectionnée, changer le nom de la feuille si besoin)
ListFillRange: $A$2$B$4
Pour LinkedCell et ListFillRange c'est mieux de nommer les zones et d'utiliser les noms.
Désactiver le mode construction.
Exemple: http://www.cijoint.fr/cij49890396433353.xls
eric
Bonjour,
En mode création il faut sélectionner ta liste déroulante et faire un clic-droit dessus pour choisir propriétés.
Je suppose qu'ensuite tu as cliqué sur ta feuille (ce qu'il ne faut pas faire) ce qui t'a changé les propriétés de la combox pour celles du worksheet (feuille).
eric
En mode création il faut sélectionner ta liste déroulante et faire un clic-droit dessus pour choisir propriétés.
Je suppose qu'ensuite tu as cliqué sur ta feuille (ce qu'il ne faut pas faire) ce qui t'a changé les propriétés de la combox pour celles du worksheet (feuille).
eric
en fait c'est que je n'avais pas sélectionner mode création et donc je n'avais qu'une partie des données de la fenêtre qui s'affichait.
merci beaucoup pour ton aide, cela fait très longtemps que je cherchais sans jamais rien trouver
mille merci
bonne journée
Marine
merci beaucoup pour ton aide, cela fait très longtemps que je cherchais sans jamais rien trouver
mille merci
bonne journée
Marine
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pardon, j'ai encore un soucis, je voudrais copier la liste déroulante vers d'autres cellules et que la cellule de destination évolue également
exemple :
liste de choix1 liée avec cellule D1
liste de choix 2 liée avec cellule D2
...
Si je selectionne ma ligne et tire la zone vers le bas, toutes les données sont copiées à l'exception de ma liste de choix.
merci
Marine
exemple :
liste de choix1 liée avec cellule D1
liste de choix 2 liée avec cellule D2
...
Si je selectionne ma ligne et tire la zone vers le bas, toutes les données sont copiées à l'exception de ma liste de choix.
merci
Marine
hummm, je ne sais pas si j'ai bien compris ton problème...
Tu veux, après sélection dans la liste, ramener pomme dans une cellule et verte dans une autre ?
Si c'est le cas tu concatenes les éléments de liste1 et liste2 avec pour séparateur un caractère que tu sais toujours absent.
Par exemple:
pomme\rouge
pomme\verte
...
Tu utilises une liste classique à 1 colonne
Tu sélectionnes un élément de ta liste que tu sépares en 2 dans 2 cellules ensuite.
Ex avec ta cellule liée en A8:
partie gauche: =GAUCHE(A8;TROUVE("\";A8)-1) => Pomme
partie droite: =STXT(A8;TROUVE("\";A8)+1;50) => Verte
C'est ça que tu veux ?
eric
Tu veux, après sélection dans la liste, ramener pomme dans une cellule et verte dans une autre ?
Si c'est le cas tu concatenes les éléments de liste1 et liste2 avec pour séparateur un caractère que tu sais toujours absent.
Par exemple:
pomme\rouge
pomme\verte
...
Tu utilises une liste classique à 1 colonne
Tu sélectionnes un élément de ta liste que tu sépares en 2 dans 2 cellules ensuite.
Ex avec ta cellule liée en A8:
partie gauche: =GAUCHE(A8;TROUVE("\";A8)-1) => Pomme
partie droite: =STXT(A8;TROUVE("\";A8)+1;50) => Verte
C'est ça que tu veux ?
eric
non en fait j'ai un tableau qui va se compléter en fonction de ce que j'aurais sélectionné dans ma liste de choix en colonne A.
ce tableau comporte un certain nombre de lignes. pour le moment ma liste de choix est en A1 avec destination B1 et je voudrais recopier cette liste de choix en A2 avec destination B2 puis en A3 destination B3
pour le moment quand je recopie une liste de choix, je n'arrive pas à faire évoluer la cellule de destination sauf si je vais dans les propriétés de chaque liste. Il doit y avoir un moyen + simple de faire du copier/coller et que la cellule de destination évolue en même temps.
pour info dans ma 1ère combobox, j'ai indiqué en cellule de destination B1 sans $ en pensant qu'elle évoluerait mais ça ne marche pas.
le plus simple serait que je t'envoie mon fichier mais n'arrive pas à trouver comment faire.
marine
ce tableau comporte un certain nombre de lignes. pour le moment ma liste de choix est en A1 avec destination B1 et je voudrais recopier cette liste de choix en A2 avec destination B2 puis en A3 destination B3
pour le moment quand je recopie une liste de choix, je n'arrive pas à faire évoluer la cellule de destination sauf si je vais dans les propriétés de chaque liste. Il doit y avoir un moyen + simple de faire du copier/coller et que la cellule de destination évolue en même temps.
pour info dans ma 1ère combobox, j'ai indiqué en cellule de destination B1 sans $ en pensant qu'elle évoluerait mais ça ne marche pas.
le plus simple serait que je t'envoie mon fichier mais n'arrive pas à trouver comment faire.
marine
Bonjour Marine
et à Eriiic au passage LOL
le plus simple serait que je t'envoie mon fichier mais n'arrive pas à trouver comment faire.
là j'ai la réponse , tu vas sur :
https://www.cjoint.com/
tu fais joindre , parcourir ...
et créer le lien
puis fais un copié collé du lien ici
et à Eriiic au passage LOL
le plus simple serait que je t'envoie mon fichier mais n'arrive pas à trouver comment faire.
là j'ai la réponse , tu vas sur :
https://www.cjoint.com/
tu fais joindre , parcourir ...
et créer le lien
puis fais un copié collé du lien ici
merci beaucoup xkristi j'y vais de suite et ainsi ce sera plus explicite que mes longs discours
bonne journée
Marine
bonne journée
Marine
voilà, ce sera plus simple avec ma base et les explications sont dessus
fichier joint : https://www.cjoint.com/?meltx8EJsA
j'espère que ça va fonctionner !!!!
Marine
fichier joint : https://www.cjoint.com/?meltx8EJsA
j'espère que ça va fonctionner !!!!
Marine
Bonjour marine, coucou xkristi,
Effectivement je n'avais rien compris :-s
Et oui, les listes déroulantes ne sont pas prévues pour fonctionner comme ça...
Et ton problème n'a plus grand chose à voir avec celui du début, je te propose autre chose.
Dans la feuille catalogue, te créer par concaténation (pas le choix, ou sinon faudrait faire en vba mais si tu peux être autonome c'est aussi bien je pense) ce que tu désires voir dans la liste.
Dans ta colonne A 'base de donnée' faire une validation par liste (j'ai du utiliser feuil1 pour te montrer car ta feuille 'base de donnée' refusait). Sélectionner toutes les cellules concernées avant de faire la validation par liste.
Et en colonne D récupérer la valeur qui t'intéresse par une formule à recopier vers le bas.
Voici ta feuille avec un exemple et un peu plus d'explication
http://www.cijoint.fr/cij79195910833727.xls
C'est mieux ?
eric
Effectivement je n'avais rien compris :-s
Et oui, les listes déroulantes ne sont pas prévues pour fonctionner comme ça...
Et ton problème n'a plus grand chose à voir avec celui du début, je te propose autre chose.
Dans la feuille catalogue, te créer par concaténation (pas le choix, ou sinon faudrait faire en vba mais si tu peux être autonome c'est aussi bien je pense) ce que tu désires voir dans la liste.
Dans ta colonne A 'base de donnée' faire une validation par liste (j'ai du utiliser feuil1 pour te montrer car ta feuille 'base de donnée' refusait). Sélectionner toutes les cellules concernées avant de faire la validation par liste.
Et en colonne D récupérer la valeur qui t'intéresse par une formule à recopier vers le bas.
Voici ta feuille avec un exemple et un peu plus d'explication
http://www.cijoint.fr/cij79195910833727.xls
C'est mieux ?
eric
bonjour,
je ne comprends pas pourquoi il n'est plus posible de faire de liste de validation dans ma feuille "base de donnée".
j'ai refais entierrement mon fichier et les lliste de validation fonctionnent...ouff.
j'ai étudié ta formule =SI(NON(ESTERREUR(EQUIV(A1;TypeImmat2;0)));INDEX(Catalogue!$B$2:$D$66;EQUIV(A1;TypeImmat2;0);2);"") que je ne sais déchiffrer et effectivement j'arrive au même résultat avec une fontion recherchev(a1;catalogueB:D;2;0)
merci beaucoup pour ton aide et celle de xkristi, j'ai appris beaucoup de choses par l'intermédiare de ce problème
bonne journée à tous
Marine
je ne comprends pas pourquoi il n'est plus posible de faire de liste de validation dans ma feuille "base de donnée".
j'ai refais entierrement mon fichier et les lliste de validation fonctionnent...ouff.
j'ai étudié ta formule =SI(NON(ESTERREUR(EQUIV(A1;TypeImmat2;0)));INDEX(Catalogue!$B$2:$D$66;EQUIV(A1;TypeImmat2;0);2);"") que je ne sais déchiffrer et effectivement j'arrive au même résultat avec une fontion recherchev(a1;catalogueB:D;2;0)
merci beaucoup pour ton aide et celle de xkristi, j'ai appris beaucoup de choses par l'intermédiare de ce problème
bonne journée à tous
Marine
Bonjour,
Cette formule permet de ramener une valeur (comme recherchev) mais même si elle se trouve dans une colonne avant la clé de recherche. Et en plus avec filtrage des erreurs.
Si tu peux changer ton tableau pour utiliser recherchev c'est aussi simple oui
eric
Cette formule permet de ramener une valeur (comme recherchev) mais même si elle se trouve dans une colonne avant la clé de recherche. Et en plus avec filtrage des erreurs.
Si tu peux changer ton tableau pour utiliser recherchev c'est aussi simple oui
eric
super, j'ai été obligée à plusieures reprises de modifier mes bases de données lorsuqe j'utilisais la fonction recherche et que mes colonnes n'étaient pas dns le bon ordre. GENIAL, je vais étudier ta formule et la mettre de coté pour modifier mes bases et les allégées des colonnes intermédiares cachées que j'ai du créer pour arriver à ce que cela fonctionne.
merci
Marine
merci
Marine
Pour te guider:
INDEX(Catalogue!$B$2:$D$66;EQUIV(A1;TypeImmat2; 0);2) associe 2 fonctions
EQUIV(A1;TypeImmat2; 0) recherche la valeur exacte (car ;0) A1 dans la matrice TypeImmat2 et te retourne sa position x (n°ligne dans la liste) qui te servira de n° de ligne dans index().
INDEX(Catalogue!$B$2:$D$66;x;2) te retourne la valeur située ligne x colonne 2 dans $B$2:$D$66
eric
INDEX(Catalogue!$B$2:$D$66;EQUIV(A1;TypeImmat2; 0);2) associe 2 fonctions
EQUIV(A1;TypeImmat2; 0) recherche la valeur exacte (car ;0) A1 dans la matrice TypeImmat2 et te retourne sa position x (n°ligne dans la liste) qui te servira de n° de ligne dans index().
INDEX(Catalogue!$B$2:$D$66;x;2) te retourne la valeur située ligne x colonne 2 dans $B$2:$D$66
eric
merci beaucoup pour ta réponse c'est exactement ce que je cherche à faire.
Par contre j'ai encore besoin d'une précision, dans ta réponse tu indiques de changer les propriétes mais je n'arrive pas à afficher les mêmes données que toi.
moi j'ai Feuile 1 worksheet
alphabétique / par catégorie
si je clique sur l'onglet par catégorie j'obtiens :
divers puis
displaypagebreaks
displayrightToleft
....
peut être car je n'ai pas désactivé le mode création mais je ne sais comment faire
merci
Marine