Menus déroulants dans excel

Résolu/Fermé
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 - 18 mars 2008 à 10:53
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 - 20 mars 2008 à 10:52
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
A voir également:

4 réponses

déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 5
18 mars 2008 à 11:38
En fait je voudrais qu'un sous-menu-déroulant s'affiche quand je choisi O dans mon MD1.
0
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 5
18 mars 2008 à 15:37
J'ai essayé avec la barre d'outils visual basics mais je n'y arrive pas
0
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 5
19 mars 2008 à 12:25
help
0
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 338
19 mars 2008 à 13:26
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
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 5 > LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012
19 mars 2008 à 13:54
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
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 338 > déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008
19 mars 2008 à 17:26
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
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 5 > LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012
20 mars 2008 à 10:18
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
LePierre Messages postés 249 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 2 août 2012 338 > déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008
20 mars 2008 à 10:38
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
déjà.vu Messages postés 28 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 8 avril 2008 5
19 mars 2008 à 15:41
je le met dans une listbox
0