Liste de choix sur 2 colonnes

Résolu
fafs Messages postés 17 Statut Membre -  
eriiic Messages postés 24581 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
Configuration: Windows XP
Firefox 2.0.0.10

17 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
    1. fafs Messages postés 17 Statut Membre
       
      bonjour eriiic,

      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
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  3. fafs Messages postés 17 Statut Membre
     
    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
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Au plaisir...
    Bonne journée à toi aussi
    eric
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fafs Messages postés 17 Statut Membre
     
    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
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  8. fafs Messages postés 17 Statut Membre
     
    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
    0
  9. xkristi Messages postés 4336 Date d'inscription   Statut Membre Dernière intervention   564
     
    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
    0
  10. fafs Messages postés 17 Statut Membre
     
    merci beaucoup xkristi j'y vais de suite et ainsi ce sera plus explicite que mes longs discours
    bonne journée
    Marine
    0
  11. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      ou si tu n'as que immatriculation à afficher en D (donc pas d'autres valeurs sur la même ligne) se contenter d'une formule plus simple pour récupérer la partie droite de la valeur sélectionnée dans la liste.
      0
  12. fafs Messages postés 17 Statut Membre
     
    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
    0
  13. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  14. fafs Messages postés 17 Statut Membre
     
    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
    0
  15. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  16. fafs Messages postés 17 Statut Membre
     
    j'ai utilisé ta formule et mis à jour ma base qui est enfin terminée

    encore un grand merci pour tes explications et ta patience

    Bonnes fêtes de fin d'année
    Marine
    0
  17. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    De rien marine
    Bonne continuation et bonnes fetes aussi :-)
    eric
    0