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. 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
  2. J'ai essayé avec la barre d'outils visual basics mais je n'y arrive pas
    1. En fait je voudrais qu'un sous-menu-déroulant s'affiche quand je choisi O dans mon MD1.