XL 2013 Liste de validation avec 3 conditions

Sebast

XLDnaute Impliqué
Bonsoir à toutes et à tous,

je bute sur un problème d'imbrication de conditions avec un (banal) SI

Dans une liste de validation, selon ce qu'on trouve dans une cellule, on autorise la saisie de telle ou telle donnée en piochant dans telle feuile plutôt que dans telle autre
Jusqu'à deux listes, j'y arrive (j'ai découvert ça grâce au forum) ;)
mais au-delà, j'en perds mon latin, aussi parce que c'est particulièrement inconfortable de saisir dans la petite lucarne "Source" de la liste de validation.
Quand on veut se relire, la souris ne permet pas le défilement et la flèche du clavier fait qu'on se promène sur la feuille active et non dans la lucarne … :mad:

Pour faire simple, j'aimerais que si en feuille "Saisie" colonne B on a :
Divers ou Autre, alors la liste provient de la feuille Frais_généraux
le reste (ni Divers, ni Autre ni Produit) alors la liste provient de la feuille Agricole
Produit, alors la liste provient de la feuille Atelier

J'arrive à imbriquer les 2 premières conditions mais pas les trois

Je précise aussi que je ne veux pas nommer les plages (type Atelier, Agricole etc.) car cela me pose des problèmes quand je duplique des TCD : Excel me réclame alors d'affecter un nouveau nom à la zone qu'il voit en double …
Je sais que ce serait plus lisible mais ça me coincerait ultérieurement

et au-delà, comment procéder s'il y a par exemple 4 sources pour la validation (ne serait-ce que d'un point de vue syntaxe, on n'est pas bloqué par un nombre de signes ?). Est-ce possible de faire cela en VBA ?

D'avance, merci pour votre aide
 

Pièces jointes

  • Question_forum_01032016.xlsm
    15.2 KB · Affichages: 39
  • Question_forum_01032016.xlsm
    15.2 KB · Affichages: 37

Sebast

XLDnaute Impliqué
Re : Liste de validation avec 3 conditions

Salut Rachid,
Merci pour ton aide.

La liste de validation fonctionne désormais mais ça ne résoud pas mon problème car avec des noms, quand je crée de nombreux tableaux croisés dynamiques, que je duplique dans le fichier, je me retrouve avec l’obligation de renommer chaque nom existant (autant que de TCD) : Excel me dit qu’il y a déjà ce nom et que ça crée un conflit.
Toi qui es le pro de la formule, ne peut-on pas adapter ma formule initiale qui ne contient que 2 conditions à la 3ème condition ?
En fait, je ne me sens pas trop en matière de syntaxe et surtout, j’ai du mal à m’y retrouver dans la petite fenêtre où on écrit la source de la liste de validation.

Ma formule est la suivante mais ne concerne donc que deux zones (situées en feuille Frais_généraux et feuille Agricole)


Code:
=SI(OU($B3="Autre";$B3="Divers");Frais_généraux!$A$2:$A$4;Agricole!$A$2:$A$14)

Comment l’écrire pour que en plus des autres conditions ci-dessus, si $B3= « Produit » alors l’info vienne de la feuille Atelier ?
Si la formule est similaire, c’est-à-dire sans champ nommé, je pourrai l’utiliser pour mes TCD.

A moins que par VBA ce soit possible (d’expérience, quand on nomme avec set … et non en direct via le gestionnaire de nom, il n’y a pas ce problème de nom qui se duplique).
En fait, mon souci est que je n’arrive pas à intégrer la troisième condition dans la formule qui en contient actuellemement deux (je ne sais pas si je mets trop ou pas assez de parenthèses, si j’omets un argument …) :(

As-tu une idée ?

Merci d’avance
 

R@chid

XLDnaute Barbatruc
Re : Liste de validation avec 3 conditions

Bonjour,
je ne comprends pas ton soucis avec le TCD..
sinon voir fichier comme il est demandé.


@ + +
 

Pièces jointes

  • Question_forum_01032016.xlsm
    15.3 KB · Affichages: 37
  • Question_forum_01032016.xlsm
    15.3 KB · Affichages: 38

Sebast

XLDnaute Impliqué
Re : Liste de validation avec 3 conditions

Salut Rachid, un grand merci pour ton aide et ton expertise.

J’ai décortiqué ta fonction, que j’ai réadaptée sans les plages nommées.
On a donc :

Code:
=SI(OU(Saisie!$B9="Divers";Saisie!$B9="Autre");Lst_FraisGeneraux;SI(Saisie!$B9="Produit";Lst_Ateliers;Lst_Agricoles))
avec
Lst_Agricoles =Agricole!$A$2:$A$14
Lst_Ateliers =Atelier!$A$2:$A$5
Lst_FraisGeneraux =Frais_généraux!$A$2:$A$4
qui devient (pour moi) :

Code:
=SI(OU(Saisie!$B9="Divers";Saisie!$B9="Autre"); Frais_généraux!$A$2:$A$4;SI(Saisie!$B9="Produit"; Atelier!$A$2:$A$5; Agricole!$A$2:$A$14))

Et l’une comme l’autre des méthodes fonctionne nickel.

Pour moi, l’intérêt d’avoir la formule sans plage nommée, c’est que ça ne coincera pas quand mes TCD viendront s’alimenter dans une feuille contenant ces plages nommées. En effet, comme je multiplie mes TCD par duplication (je copie le tcd1 en tcd2 puis en tcd3 etc. et je ne fais que changer la disposition des champs, pour avoir différentes analyses), Excel couine qu’il trouve plusieurs fois le même nom et me demande donc de le changer … désolé, je ne sais pas à quoi ça tient précisément mais le problème apparaît chez moi.
La seule solution pour moi est de ne pas utiliser de plages nommées …


Donc encore merci pour ta réponse qui m’a bien aidé
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar