Choisir entre 2 listes de validation selon la valeur d'une colonne

tmontule

XLDnaute Nouveau
Bonjour à tous et bon weekend.

Voilà mon problème. J'ai une colonne statut dans une feuille. J'ai une autre colonne A. Je souhaiterais :

Si A = 1 alors la liste de validation de la colonne B doit contenir "Created, Estimated, Started, Blocked, Delivered".
Si A = 2 alors la liste de validation de la colonne B doit afficher les valeurs "Not Started, In Progress, Removed, Done".

Le tout étant dynamique selon les valeurs renseignées dans A.

Auriez-vous une petite idée ?

A+

Thierry
 

Victor21

XLDnaute Barbatruc
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Bonjour.

Auriez-vous une petite idée ?
Oui. J'ai dans l'idée qu'un petit fichier joint nous aiderait :
- à voir comment est organisé ce fichier (Noms définis ou pas, où...)
- à tester la proposition pour nous assurer qu'elle fonctionne.
 

Si...

XLDnaute Barbatruc
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Salut

Si... pas ça, tant pis
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column > 1 Then Exit Sub
    Dim L$
    Target.Offset(0, 1) = "": Target.Offset(0, 1).Validation.Delete
    Select Case Target
      Case 1: L = "Created, Estimated, Started, Blocked, Delivered"
      Case 2: L = "Not Started, In Progress, Removed, Done"
      Case Else: Exit Sub
    End Select
    Target.Offset(0, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=L
End Sub
 

Chefredo

XLDnaute Junior
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Voir ci-joint si cela convient (liste en cascade avec champs nommés et fonction INDIRECT).

ce que je sais sur ce sujet vient d'ici : Listes en cascade

ça vaut le coup d'y faire un tour !

Chefredo
 

Pièces jointes

  • tmontule_Che.xls
    14 KB · Affichages: 96

tmontule

XLDnaute Nouveau
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Bonjour et merci à tous pour vos réponses rapides.

L'exemple sur les listes de validation de chefredo est astucieux.

C'est ce que je souhaite obtenir. En revanche, je souhaite si F2 = 0 alors j'affiche la liste choix 1 sinon la liste choix 2. Any idea ?

Pour le code fourni dans la réponse précédente, je ne comprends pas à quoi correspond Target. La colonne A ou la colonne B ? Je doute qu'il marche...

Cordialement.

Thierry
 

Chefredo

XLDnaute Junior
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Bonjour,

voir en pièce jointe une solution différente (formule un poil plus compliquée qu'avec INDIRECT).
La méthode est décrite sur le site du "Maître" Boisgontier dont je t'ai donné la référence dans mon message précédent.

Chefredo
 

Pièces jointes

  • tmontule_Che_v2.xls
    14.5 KB · Affichages: 70
Dernière édition:

tmontule

XLDnaute Nouveau
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Re-bonjour Chefredo,

Attention la colonne F2 peut prendre n'importe quelle valeur. Pas seulement 0 et 1 mais 0,1,2,3, 4....100, 1098 etc.

Donc liste 1 si F2 = 0 et liste 2 si toutes les autres valeurs. Ou liste 1 si F2=0,1,2,3,4,5 et liste 2 si F2>5 par exemple.

Tu vois ?

A+

Thierry
 

JCGL

XLDnaute Barbatruc
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Bonjour à tous,

Le code de Si... fonctionne parfaitement... avec ta demande du #1 où tu souhaites 1 ou 2 en A et les listes de validation en B.

J'aurais juste rajouté un :
Target.Offset(0, 1).Select
avant le End Sub.

A + à tous
 

Victor21

XLDnaute Barbatruc
Re : Choisir entre 2 listes de validation selon la valeur d'une colonne

Bonjour à tous. Bonjour Thierry.

Que de temps perdu !
Je suis persuadé qu'un petit fichier Excel joint, comme demandé hier à 10h55, et comme préconisé par Lien supprimé
- sans données confidentielles,
- respectant l'organisation des données
- ne contenant que la ou les zone(s) concernée(s)
- Présentant tous les cas de figure envisageables (données d'entrée) avec les résultats souhaités pour chaque cas (ce qui évite de modifier les contraintes au fil des échanges)
aurait généré dans les 10 mn une solution satisfaisante.
C'est, certes, un petit effort, mais Chefredo, par exemple, n'a pas hésité à le fournir.

Concernant la proposition de Si..., et votre appréciation :
Pour le code fourni dans la réponse précédente, je ne comprends pas à quoi correspond Target. La colonne A ou la colonne B ? Je doute qu'il marche...
Peut-être auriez-vous pû tester, et ainsi lever vos doutes ?
Pour votre information,
If Target.Column > 1 Then Exit Sub
signifie "si le numéro de colonne dans laquelle se trouve la cellule active est supérieur à 1 (colonne A), on sort de la procédure."
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 016
dernier inscrit
Mokson