Excel : correspondance entre deux cases

Résolu
Bonjour,
J'aimerai savoir s'il est possible de faire correspondance deux champs ensemble dans Excel?
Par exemple :

J'aimerai par exemble une liste :
1. Vacances
2. Congé
3. Cours

et dans la liste que je rempli je metterai seulement les chiffres 1, 2 ou 3 et au lieu de me marquer les chiffres ça me mets Vacances, congé ou cours ?

Est-ce possible?

Merci
Configuration: Windows XP Internet Explorer 7.0

8 réponses

Résumé de la discussion

Le fil explore comment faire correspondre un code numérique avec une étiquette textuelle dans Excel en utilisant une liste de valeurs et potentiellement une macro VBA. Plusieurs réponses recommandent une macro Workbook_SheetChange qui remplace les valeurs 1, 2, 3 par les libellés correspondants issus d'une plage sur une autre feuille. L'exemple précise que selon le chiffre saisi, la valeur est remplacée par le libellé correspondant (par exemple Vacances, Congé, Cours) puisé dans des cellules de référence comme B1‑B5. Des variantes existent selon la feuille et les colonnes, ainsi que la nécessité d'enregistrer le fichier avec macro activée et d'adapter les plages.

Bobot (l’IA à votre service)
  1. Petit souci de serveur. Je n'arrive pas à mettre le fichier sur cijoint.
    Suis mes instructions:

    appuyes simultanément sur alt+F11

    Visual basic s'ouvre

    double clique sur thisworkbook a gauche dans l'onglet "projet"

    dans la fenêtre qui s'ouvre, colle la macro suivante:

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Value = 1 Then Target.Value = Sheets("liste").Range("b1").Value
    If Target.Value = 2 Then Target.Value = Sheets("liste").Range("b2").Value
    If Target.Value = 5 Then Target.Value = Sheets("liste").Range("b3").Value
    If Target.Value = 20 Then Target.Value = Sheets("liste").Range("b4").Value
    If Target.Value = 60 Then Target.Value = Sheets("liste").Range("b5").Value
    End Sub


    Ferme VBA

    Normalement ça marche
    2
    1. Ouii Ca marche..
      Mais,
      Si je veux rajouter des choses dans la liste ça marche pas.. j'ai essayer de rajouter 1 ça marche pas =(
      0
    2. @wkaimissyAprès faut modif le code en fonction de l'emplacement de la liste, du contenu de la liste, etc... le code est pas compliqué et au pire tu a l'aide Microsoft Visual Basic pour t'expliquer les objets etc ..
      0
    3. @wkaimissyAlors si tu veux en rajouter un, tu dois aussi le rajouter dans ton code.

      ajoute une ligne

      If Target.Value = 60 Then Target.Value = Sheets("liste").Range("b5").Value

      à la place de 60 met la valeur que tu désires rentrer

      à la place de b5 mets la case dans laquelle se trouve la valeur à afficher
      0
    4. @Doudou95En tout cas Merci beaucoup, tu m'as rendu énormément service.
      Merci encore.

      Salutations et à bientot
      0
    5. @Farfadet88bo gosse :) (t'a vu j'ai récup mon compte j'étais banni apparemment des membres se sont plains de moi j'comprends pas :()
      0
  2. Tu veux ça à une colonne en particulier?
    1
    1. Merci beaucoup pour ta réponse,

      Euh, sur une autre feuille je veux la liste de
      1. Vacances
      2. Congé
      3. Cours
      ...

      Et sur une autre feuille c'est où je remplirai en mettant que 1, 2, 3,... et ca me marquera ce que c'est.
      0
      1. Ca marquera ce que c'est où?
        0
    2. j'ai un peu de jcontinue d'essayer d'voir après miam
      0
      1. Ok c'est genti, ça doit pas etre impossible quand même, j'en ai vraiment besoin de savoir ça, c'est pour le travail.. et je trouve rien sur le net..

        Bon appetit =)
        0
        1. Il va falloir fonctionner par macro VBA
          0
        2. @Farfadet88Mais on fait comment?
          0
        3. @wkaimissyAlors la voilà.

          Copie tout ce qui est en gras

          appuye sur alt+F11 (Visual basic s'ouvre)

          Double clique sur thisworkbook dans l'aonglet de gauche

          Colle la macro dans la feuille qui s'ouvre

          Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
          If Target.Value = 1 Then Target.Value = sheets ("feuil1").range ("a1").value
          If Target.Value = 2 Then Target.Value = sheets ("feuil1").range ("a2").value
          If Target.Value =3 Then Target.Value = sheets ("feuil1").range ("a2").value
          End Sub


          A la place de a1 tu mets la case ou se trouve vacances, a la place de a2, la case ou se trouve etc etc

          0
        4. @Farfadet88Euh, j'ai collé ce code, mais après je dois noté ou ma liste ? sur quelle feuille ?

          Moi je voudrai par exemple :
          Feuille 1
          Collonne a : la liste des numéros (car ils ne se suivent pas)
          Collonne b : la description

          Feuille 2

          J'aurai un tableau où je devrai insérer les chiffres et ça me marquera la description.
          0
        5. @wkaimissyDans ce cas le code sera différent.

          Je te propose de faire tout ton tableau, de me le faire passer sur cijoint.fr en format excel 2003 et je te le renvoie après avoir créé la macro
          0
      2. c'est ce que je crains je peux aider par le VB mais en formule je voulais passer par mise en forme conditionnelle mais on ne peut pas entre deux pages
        0
        1. Aidez moi s'il vous plait. Je ne m'y connais vraiment rien en tout ça, alala
          0
      3. Ca fait ça pour tout le classeur?
        0
        1. oui
          0
          1. Cool bg jconnaissais pas thx au passage
            0