Conditionner un affichage d'une liste déroulante [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
samedi 31 mars 2018
Statut
Membre
Dernière intervention
1 avril 2018
-
Messages postés
9527
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
8 août 2020
-
Bonjour,
J'aimerai savoir s'il est possible dans Excel de définir préférentiellement la valeur d'une liste déroulante ?
Je m'explique :
Dans la colonne A : choix d'une activité (dans une liste déroulante)
Dans le colonne B : choix du temps aloué à l'activité
Si l'activité 1 est choisie dans la liste déroulante en cellule A1, j'aimerai qu'automatiquement la cellule B1 affiche la durée "2h", mais que cette durée soit modifiable si besoin manuellement par une autre de la liste déroulante à laquelle appartient la valeur "2h". Si l'activité 2 est choisie en A2, B2 devra afficher 3h par défaut, à nouveau modifiable manuellement si besoin en choisissant dans la liste déroulante
J'espère m'être bien fait comprendre
L'avantage de cette solution si elle est possible, par rapport à rentrer une valeur manuellement, serait de limiter les erreurs ; je pourrai aussi bien utiliser la formule "si" et effacer pour rentrer une valeur manuellement si elle devait être modifiée, mais cela impliquerait donc d'effacer la formule, ce que je voudrais éviter
Merci par avance pour vos retours !

3 réponses

Messages postés
9527
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
8 août 2020
1 877
Bonjour

Un petit exemple avec macro
https://www.cjoint.com/c/HCFtmKUt32B

Cdlmnt
Messages postés
9527
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
8 août 2020
1 877
celui-ci devrait mieux répondre à la question (je crois)

Cdlmnt
https://www.cjoint.com/c/HCFtBcuIVZB
Messages postés
4
Date d'inscription
samedi 31 mars 2018
Statut
Membre
Dernière intervention
1 avril 2018

Je vais essayer, merci beaucoup ! Le résultat correspond à ce que j'attend en tout cas
Messages postés
4
Date d'inscription
samedi 31 mars 2018
Statut
Membre
Dernière intervention
1 avril 2018

Ca marche parfaitement merci ! Juste une dernière question : j'ai essayé d'adapter la macro pour qu'elle marche non seulement en ligne 1 mais aussi enligne 2, 3 ... en mettant dans la macro :
Const celact = "A1:A18"
Const celdur = "B5:B18"
Sauf que du coup en colonne B, à partir du moment ou je remplis A1, si A2 A3 etc sont vides, j'ai en B2, B3 etc une errue "#N/A". Y'a-t-il moyen de résoudre cette "erreur", qui s'en va lorsque je remplis au fur et à mesure la colonne A ? Faut-il que j'écrive la macro individuellement pour chaque cellule de la ligne 1 à 18 soit 18 copies ?
Merci !!!
Messages postés
9527
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
8 août 2020
1 877
Essaies ceci

Option Explicit

' constantes à adapter à ta configuration
Const plageact As String = "$A$2:$A$18"
Const plageactdur As String = "$G$2:$H$10"

' formule à copier en colonne B
Const formdur As String = "=SI(A2="""";"""";RECHERCHEV(A2;" & plageactdur & ";2;0))"

Private Sub Worksheet_Change(ByVal Target As Range)
Dim adr As String, f As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(plageact)) Is Nothing Then
If Target.Value = "" Then Target.Offset(0, 1).Value = "": Exit Sub
  adr = Target.Address
  f = Replace(formdur, "A2", adr)
  Target.Offset(0, 1).FormulaLocal = f
End If
End Sub


https://www.cjoint.com/c/HDbn3J0wJ7B

Cdlmnt
Messages postés
4
Date d'inscription
samedi 31 mars 2018
Statut
Membre
Dernière intervention
1 avril 2018

Impeccable, ça fonctionne ! Merci beaucoup !
Messages postés
9527
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
8 août 2020
1 877
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)

Bonne soirée