![]() |
|
Forum
|
|
|||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour à tous je suis peut etre pas tres clair dans ma demande.
je vous explique. J'ai créé une liste dans la cellule A1 à l'aide de validation .. liste. dans cette liste j'ai deux choix A OU B. je voudrais que lorsque je choisis A, apparaisse dans la cellule d'à coté une liste où la source serait situé dans la plage D1 4. alors que si je choisi B à coté apparaitrait une autre liste avec une autre source...Mon soucis est de savoir si sur un evement choix d'un champs dans une liste on peut faire une action résultante? J'espere etre clair. Je vous remercie pour votre aide. |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Salut Nychko,
Voici un exemple de procédure qui change la plage de références d'une liste de validation située en B1 : Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then With Range("B1").Validation .Delete If Target.Text = "Jours" Then .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=$D$1:$D$7" Else .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=$E$1:$E$12" End If .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub Dans cet exemple, si l'on choisis "Jours" en A1, la liste de B1 propose les jours de la semaine, sinon les mois de l'année. A+ Horatio |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Salut nychko, salut lord nelson
Un autre exemple en pièce jointe sans passer par VBA, pour ce qui est des listes de validation et de leurs utilisation, tu peux consulter le coffret des liste téléchargeable créé par Celeda, c'est très interressant. J'espère avoir apporté de l'eau à ton moulin. @ plus Jacques |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Re nychko,
si tu veux que la cellule B3 s'efface quand tu change A3, rajoute le code suivant dans VBA : Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$3" Then Range("b3").Value = "" End If End Sub Bon courage Jacques |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Oui Jacques, tu as raison !
Il n'est pas nécessaire de passer par VBA, on peut s'appuyer sur une formule en paramétrant la validation. J'ai fait un autre test avec SI : =SI(A20="Jours";$D$1:$D$7;$E$1:$E$12) et ça marche aussi. Merci à toi, à Nichko et à Celeda, j'ai encore appris quelque chose aujourd'hui. Vive XLD ! Horatio |
| Liens sociaux |
| Outils de la discussion | |
|
|