Comment faire un Menu déroulant dans excel ?
Résolu/Fermé
A voir également:
- Comment faire un Menu déroulant dans excel ?
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Si et excel - Guide
- Comment calculer la moyenne sur excel - Guide
2 réponses
purrofixe
Messages postés
490
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
12 septembre 2007
94
Modifié le 28 mars 2017 à 09:48
Modifié le 28 mars 2017 à 09:48
Bonjour Xavier,
Je vous propose ce qui suit :
Bonne journée.
Salutations
Jean-Pierre
Je vous propose ce qui suit :
- Sur une autre feuille du classeur vous entrez les valeurs de votre choix sous forme de colonne.
- Retour dans votre feuille de données et clic sur la cellule ou vous voulez que le choix intervienne.
- Barre d’outil : Données\Validation
- Onglet Options : sous Autoriser, choisir Liste
- Sous Source : l’adresse de votre champ de valeurs (exp. =$A$6:$A$11)
- Sur OK pour terminer
- Glisser\Coller pour les autres cellules.
Bonne journée.
Salutations
Jean-Pierre
Utilisateur anonyme
17 janv. 2008 à 14:54
17 janv. 2008 à 14:54
Bonjour,
pour les couleurs, tu fais Menu Format -> Mise en forme conditionnelle
Tu mets tes conditions "La valeur de la cellule égale MC" tu cliques sur le bouton format et tu choisis la couleur désirée
Tu cliques sur le bouton Ajouter. Et là tu mets autant de conditions que tu désires ( enfin pas 50000 ! )
Voila pour les couleurs
Pour les totaux : c'est du VBA ( ALT+F11 )
Pour par exemple "traquer" les valeurs entre les cellules J16 à N31
ColStart = "J": ColEnd = "N"
LigneStart = 16: LigneEnd = 31
Inserer un module et y mettre ce code
Global flag As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
If flag = 1 Then Exit Sub
Rem
Rem on traque entre les colonnes J et N
Rem et entre les lignes 16 et 31
Rem
ColStart = "J": ColEnd = "N"
LigneStart = 16: LigneEnd = 31
Cellule = Target.Address
Dollar = InStr(2, Cellule, "$")
colonne$ = Mid$(Cellule, 2, Dollar - 2)
Ligne$ = Mid$(Cellule, Dollar + 1)
If (colonne$ >= ColStart And colonne$ <= ColEnd) Then
If (Ligne$ >= LigneStart And Lignes <= LignesEnd) Then
For Colonnes = Asc(ColStart) To Asc(ColEnd)
For Lignes = LigneStart To LigneEnd
Longueur = Len(Cells(Lignes, Colonnes - 64).Text)
Select Case Longueur
Case 1
P = P + 1
Case 2
MC = MC + 1
Case 3
MSC = MSC + 1
End Select
Next Lignes
flag = 1
Cells(LigneEnd + 1, Colonnes - 64).Value = "MC = " + CStr(MC)
Cells(LigneEnd + 2, Colonnes - 64).Value = "MSC = " + CStr(MSC)
Cells(LigneEnd + 3, Colonnes - 64).Value = "P = " + CStr(P)
flag = 0
MC = 0: MSC = 0: P = 0
Next Colonnes
End If
End If
End Sub
Voila, cela devrait faire l'affaire !
pour les couleurs, tu fais Menu Format -> Mise en forme conditionnelle
Tu mets tes conditions "La valeur de la cellule égale MC" tu cliques sur le bouton format et tu choisis la couleur désirée
Tu cliques sur le bouton Ajouter. Et là tu mets autant de conditions que tu désires ( enfin pas 50000 ! )
Voila pour les couleurs
Pour les totaux : c'est du VBA ( ALT+F11 )
Pour par exemple "traquer" les valeurs entre les cellules J16 à N31
ColStart = "J": ColEnd = "N"
LigneStart = 16: LigneEnd = 31
Inserer un module et y mettre ce code
Global flag As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
If flag = 1 Then Exit Sub
Rem
Rem on traque entre les colonnes J et N
Rem et entre les lignes 16 et 31
Rem
ColStart = "J": ColEnd = "N"
LigneStart = 16: LigneEnd = 31
Cellule = Target.Address
Dollar = InStr(2, Cellule, "$")
colonne$ = Mid$(Cellule, 2, Dollar - 2)
Ligne$ = Mid$(Cellule, Dollar + 1)
If (colonne$ >= ColStart And colonne$ <= ColEnd) Then
If (Ligne$ >= LigneStart And Lignes <= LignesEnd) Then
For Colonnes = Asc(ColStart) To Asc(ColEnd)
For Lignes = LigneStart To LigneEnd
Longueur = Len(Cells(Lignes, Colonnes - 64).Text)
Select Case Longueur
Case 1
P = P + 1
Case 2
MC = MC + 1
Case 3
MSC = MSC + 1
End Select
Next Lignes
flag = 1
Cells(LigneEnd + 1, Colonnes - 64).Value = "MC = " + CStr(MC)
Cells(LigneEnd + 2, Colonnes - 64).Value = "MSC = " + CStr(MSC)
Cells(LigneEnd + 3, Colonnes - 64).Value = "P = " + CStr(P)
flag = 0
MC = 0: MSC = 0: P = 0
Next Colonnes
End If
End If
End Sub
Voila, cela devrait faire l'affaire !
Merci pour tout ces conseils!!! C'est vraiment cool Excel!!!
Juste pour tempérer un peu ta réponse: apparement on ne peut pas mettre tant de conditions que ça... Je n'arrive à en mettre que 3... Ca dépend sûrement de la version de Excel qu'on a (mon PC du boulot, qui tourne sous Windows 2000, yiiiiipie!)
En tout cas merci pour vos TRES bon tuyaux!
iokLaiok
Juste pour tempérer un peu ta réponse: apparement on ne peut pas mettre tant de conditions que ça... Je n'arrive à en mettre que 3... Ca dépend sûrement de la version de Excel qu'on a (mon PC du boulot, qui tourne sous Windows 2000, yiiiiipie!)
En tout cas merci pour vos TRES bon tuyaux!
iokLaiok
9 sept. 2006 à 15:42
j'ai essayé ta méthode et ca m'a beaucoup aidé aussi. Seulement je ne parviens à inserer des données d'une autre page, il ne veut le faire que si les cellules sources sont sur la meme page.
Est ce normal?
Par exemple si je fais =Feuil3!$A$12:$A$51 il me donne un message d'erreur.
Merci d'avance pour ton aide
justme
10 sept. 2006 à 10:07
regarde ici : menu deroulant dans excel#2
21 oct. 2006 à 15:01
si tu pouvais me l'expliquer
merci par avance
@+
22 oct. 2006 à 01:33
quand la liste de validation est sur une autre feuille, il faut donner un nom (insertion/nom/définir) à la zone de référence de la liste et appeler ce nom dans les cellules de saisie (données/validation/liste) en mettant =lenom dans la zone source
A+
14 nov. 2008 à 13:00
Cela a fonctionné parfaitement et sans problème; merci!
Question: y a-t-il moyen de limiter le nombre de fois qu'un élément de la liste oeut être coché dans une feuille? J'ai une liste de tables de convivies et je voudrais un STOP au moment où une table est cochée plus de fois qu'il n'y a de place à table (p.ex. 8 par table)?
D'avance merci.