Menus déroulants dans excel
Résolu
déjà.vu
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
déjà.vu Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
déjà.vu Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Menus déroulants dans excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel liste déroulante en cascade - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
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
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
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
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
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
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
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
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