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
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
A voir également:
- Menus déroulants dans excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Excel liste déroulante en cascade - Guide
- Word et excel gratuit - Guide
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
18 mars 2008 à 11:38
En fait je voudrais qu'un sous-menu-déroulant s'affiche quand je choisi O dans mon MD1.
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
18 mars 2008 à 15:37
J'ai essayé avec la barre d'outils visual basics mais je n'y arrive pas
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
19 mars 2008 à 12:25
help
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
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
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
19 mars 2008 à 15:41
je le met dans une listbox