Menus déroulants dans excel

Résolu
Bonjour a tous,

Dans mon tableur excel j'ai une menu déroulant (appelons le MD1) que me propose des groupes sanguins (soient A, B, AB ou O). Il est en colonne A.

Quand je choisi O dans mon MD1, je voudrais qu'un autre menu déroulant (MD2) me propose le rhésus (+ ou -) dans la colonne B.

Comment faire?

merci d'avance
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. En fait je voudrais qu'un sous-menu-déroulant s'affiche quand je choisi O dans mon MD1.
    1. J'ai essayé avec la barre d'outils visual basics mais je n'y arrive pas
      1. help
        1. voila ce que j'ai pu trouver
          introduis ce code dans la feuille contenant ta liste déroulante

          Public FlagRH As Integer

          Private Sub Worksheet_Change(ByVal Target As Range)
          If FlagRH = 1 Then Exit Sub

          Lig = ActiveCell.Row
          FlagRH = 1
          Message = "Entrez le rhésus + ou -"
          Title = "Facteur rhésus"
          Defaut = "+"
          Do
          Rhesus = InputBox(Message, Title, Defaut)
          Beep
          Loop Until Rhesus = "+" Or Rhesus = "-" Or Rhesus = ""
          Cells(Lig, 2).Value = Rhesus
          FlagRH = 0
          End Sub

          à plus
        2. @LePierreD'abord un très grand merci pour ta réponse.

          Le code je le rentre dans une cellule comme ca ou il faut que je fasse une macro?
          (parce que je sais que les macro existe mais je ne sais pas du tout installer ça)
        3. @déjà.vutu copies l'ensemble du code ci dessous (que j'ai un peu amélioré) :

          Public FlagRH As Integer

          Private Sub Worksheet_Change(ByVal Target As Range)
          If FlagRH = 1 Then Exit Sub
          Col = ActiveCell.Column
          If Col > 1 Then Exit Sub

          Lig = ActiveCell.Row

          FlagRH = 1
          Message = "Entrez le rhésus + ou -"
          Title = "Facteur rhésus"
          Defaut = "+"
          Do
          Rhesus = InputBox(Message, Title, Defaut)
          Beep
          Loop Until Rhesus = "+" Or Rhesus = "-" Or Rhesus = ""
          Cells(Lig, 2).Value = Rhesus
          Cells(Lig + 1, 2).Select
          FlagRH = 0
          End Sub


          tu fais un click droit sur l'onglet de ta feuille et dans le menu qui s'affiche clique sur Visualiser le code
          tu es maintenant dans l'éditeur de Visual Basic

          colles le code que tu viens de copier. C'est tout. Tu peux fermer l'éditeur Visual Basic.

          Maintenant quand tu vas sélectionner un groupe sanguin en colonne A, une fenêtre s'ouvrira pour te demander de saisir + ou - (ou Annuler)

          à plus
        4. @LePierremerci beaucoup
          et ça marche! (comme dans la pub de "de particulier à particulier"...)

          Si je voulais que la boite de dialogue ne s'affiche que quand le groupe sanguin est O je fais comment?
          J'ai essayé de changer le morceau en gras ci dessous par FlagRH = O , par FlagRH = "O" j'ai un peu trifouillé tous ça mais ça me surligne la ligne Private Sub... en jaune

          Public FlagRH As Integer

          Private Sub Worksheet_Change(ByVal Target As Range)
          If FlagRH = 1 Then Exit Sub
          Col = ActiveCell.Column
          If Col > 1 Then Exit Sub

          Lig = ActiveCell.Row

          FlagRH = 1

          Message = "Entrez le rhésus + ou -"
          Title = "Facteur rhésus"
          Defaut = "+"
          Do
          Rhesus = InputBox(Message, Title, Defaut)
          Beep
          Loop Until Rhesus = "+" Or Rhesus = "-" Or Rhesus = ""
          Cells(Lig, 2).Value = Rhesus
          Cells(Lig + 1, 2).Select
          FlagRH = 0
          End Sub


          Enfin, est-ce qu'il est possible d'intégrer un menu déourlant à la boite de dialogue? ou quelque chose du genre
        5. @déjà.vuil faut simplement tester la valeur du Groupe sanguin choisi : si différent de O --> fin de procédure
          Voici le code complet avec en gras la partie ajoutée :

          Public FlagRH As Integer

          Private Sub Worksheet_Change(ByVal Target As Range)
          If FlagRH = 1 Then Exit Sub
          Col = ActiveCell.Column
          If Col > 1 Then Exit Sub

          Lig = ActiveCell.Row

          Groupe = Cells(Lig, Col).Value
          If Groupe <> "O" Then Exit Sub

          FlagRH = 1
          Message = "Entrez le rhésus + ou -"
          Title = "Facteur rhésus"
          Defaut = "+"
          Do
          Rhesus = InputBox(Message, Title, Defaut)
          Beep
          Loop Until Rhesus = "+" Or Rhesus = "-" Or Rhesus = ""
          Cells(Lig, 2).Value = Rhesus
          Cells(Lig + 1, 2).Select
          FlagRH = 0
          End Sub

          à plus