Menus déroulants dans excel

Résolu
déjà.vu Messages postés 28 Statut Membre -  
déjà.vu Messages postés 28 Statut Membre -
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. déjà.vu Messages postés 28 Statut Membre 5
     
    En fait je voudrais qu'un sous-menu-déroulant s'affiche quand je choisi O dans mon MD1.
    0
  2. déjà.vu Messages postés 28 Statut Membre 5
     
    J'ai essayé avec la barre d'outils visual basics mais je n'y arrive pas
    0
  3. déjà.vu Messages postés 28 Statut Membre 5
     
    help
    0
    1. LePierre Messages postés 249 Statut Membre 338
       
      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
      0
    2. déjà.vu Messages postés 28 Statut Membre 5 > LePierre Messages postés 249 Statut Membre
       
      D'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)
      0
    3. LePierre Messages postés 249 Statut Membre 338 > déjà.vu Messages postés 28 Statut Membre
       
      tu 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
      0
    4. déjà.vu Messages postés 28 Statut Membre 5 > LePierre Messages postés 249 Statut Membre
       
      merci 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
      0
    5. LePierre Messages postés 249 Statut Membre 338 > déjà.vu Messages postés 28 Statut Membre
       
      il 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
      0
  4. déjà.vu Messages postés 28 Statut Membre 5
     
    je le met dans une listbox
    0