liste déroulante dans une fonction si(et(......)

gtsyriu

XLDnaute Nouveau
Bonjour à vous tous,

Je viens vers vous aujourd'hui car je me trouve devant un probleme auquel je n'arrive pas à résoudre par une formule.
Voila je souhaite avoir le choix entre plusieurs listes déroulante en fonction de la valeur de 2 cellules.

Dans le fichier ci-joint je veux afficher en "C32" l'une des listes en collone "L", "M", "N" ou "O" en fonction de la valeur de "C23" & "B32".
Peut être est ce possible avec autre choses que des formules, type VBA, mais je n'y connais rien du tout. (il est pas trop tard pour apprendre)

Bref est il possible d'afficher une liste déroulante en fonction de la valeur de plusieurs cellule ?

D'avance merci a tout ceux qui me lirez et m'apporterez conseils ou solution. :p
 

Pièces jointes

  • procedure serveurs forum.xls
    27.5 KB · Affichages: 1 094

job75

XLDnaute Barbatruc
Re : liste déroulante dans une fonction si(et(......)

Bonjour gtsyriu, bienvenue sur le forum

Ce problème peut se régler facilement par des formules, VBA n'est pas nécessaire.

Je vois que vous savez construire des listes de validation. Sachez que dans la définition de la liste, au lieu d'une simple référence, on peut écrire une formule ou bien encore utiliser un nom défini par menu-Insertion-Nom.

On peut vous aider à écrire la formule permettant de définir la liste, mais vous ne nous donnez pas d'informations, ceci est insuffisant :

Dans le fichier ci-joint je veux afficher en "C32" l'une des listes en collone "L", "M", "N" ou "O" en fonction de la valeur de "C23" & "B32".

Précisez donc par quelles valeurs de C23 et B32 on obtiendra chacune des 4 listes.

A+
 

gtsyriu

XLDnaute Nouveau
Re : liste déroulante dans une fonction si(et(......)

Bonjour job75,

Merci pour cette réponse si rapide.

Alors pour être plus précis,
si(et(C23="R41";B32="Privé");C32= [liste déroulante "L" & "N"];si(et(C23="R41";B32="Public");C32= [liste déroulante "M" & "O"];si(et(C23="R41";ou(B32="Storage";B32="BackUp");C32="Renseigner D32";si(C23="R33";C32="Renseigner D32";" ")))))

Maintenant si je peux rajouter quelques petites choses :D :

- si possible afficher les listes déroulantes comprenant 2 colonnes cote à cote et non sur 2 cellules différentes

- si possible, si une formule existe pour résoudre ma demande que l'on me l'explique un peu. (je devrais pouvoir la comprendre mais on ne sais jamais) :)

- Et en regardant un peu d'autre topic j'ai vu "les listes déroulantes en cascades" cela ne peut il pas m'aider?

D'avance merci a toi job75, & a quiconque apportera une réponse à mon probleme.

Gtsyriu
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : liste déroulante dans une fonction si(et(......)

Re,

Inutile de vous expliquer par une formule (elle ne signifie rien), exprimez-vous en langage courant, c'est plus sûr.

Par ailleurs, une liste de validation doit être définie par une seule ligne ou colonne (qui peut varier suivant les conditions choisies).

A+
 

gtsyriu

XLDnaute Nouveau
Re : liste déroulante dans une fonction si(et(......)

Bonsoir,

Je vais essayer d'être un peu plus clair encore.
j'ai juste besoin d'afficher tel ou tel colonne en fonction de la valeur de 2 autres cellules.

je m'explique:

Si C23="R41" & B32="Privé" dans ce cas là je souhaite une liste déroulante contenant la collone "L" & "N" en cellule "C32" (si pas possible d'afficher 2 colonne, mettre colonne "L" en C32 & colonne "N" en D32)

Si C23="R41" & B32="Public" dans ce cas là je souhaite une liste déroulante contenant la collone "M" & "O" en cellule "C32" (si pas possible d'afficher 2 collone, mettre colonne "M" en C32 & colonne "O" en D32)

là plusieurs conditions:
soit C23="R33" dans ce cas il faut afficher en C32 "Renseigner E32"
soit C23="R41" & soit B32="Storage" soit B32="BackUp" dans ce cas il faut aussi afficher en C32 "Renseigner E32"

Bon là je peux pas faire plus clair,

Merci d'avance de te prendre la tete à ma place :) car moi je ne sais pas quoi faire d'autre.

Gtsyriu
 

Monique

Nous a quitté
Repose en paix
Re : liste déroulante dans une fonction si(et(......)

Bonjour,

Un essai

Si choix en B32 de "Public",
2 choix successifs en C32
1 choix d'abord entre Public1 et Public2
puis, dans la même cellule, liste Public1 ou liste Public2 selon le 1er choix

Idem si choix en B32 de "Privé"

Formule de la liste de validation :
=SI(NB.SI(Titres;C32);INDIRECT(C32);SI($C$23="R41";SI($B$32="Privé";TitrePrivé;SI($B$32="Public";TitrePublic))))

Le message : pas dans la liste de validation mais avec une formule conditionnelle
=SI(OU(C23="R33";ET(C23="R41";OU(B32="Storage";B32="BackUp")));"Renseigner E32";"")
La liste de validation ne propose aucun choix si le message apparaît + un format conditionnel blanc sur blanc

Toutes les plages qui servent aux listes de validation sont nommées, elles sont dans une feuille à part.
 

Pièces jointes

  • ListeValidationGtsyriu.zip
    9.1 KB · Affichages: 1 189

job75

XLDnaute Barbatruc
Re : liste déroulante dans une fonction si(et(......)

Bonsoir Gtsyriu, bonsoir Monique,

Merci pour vos explications claires Gtsyriu. Ci-joint ma proposition.

Il y a 2 listes de validations, en C32 et D32, avec les formules suivantes :

=SI(ET(C23="R41";B32="Privé");L2:L49;SI(ET(C23="R41";B32="Public");M2:M49))

=SI(ET(C23="R41";B32="Privé");N2:N49;SI(ET(C23="R41";B32="Public");O2:O49))


Par ailleurs une macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) contrôle les cellules C32, D32 et E32 (effacements, inscription de "Renseigner E32" en C32, sélections...).

Voyez le fonctionnement et bien entendu si vous avez d'autres idées, n'hésitez pas à le dire, je peux toujours modifier.

Bonne nuit.

EDIT : AMELIORATIONS :
- ajouté une MFC sur C32-D32
- dans la macro, activation/désactivation des 2 listes de validation
- dans la macro, message de saisie (Liste 1, Liste 2)
- les formules de validation deviennent tout simplement :
=SI(B32="Privé";L2:L49;M2:M49)
=SI(B32="Privé";N2:N49;O2:O49)


A+
 

Pièces jointes

  • Gtsyriu.zip
    15.8 KB · Affichages: 617
Dernière édition:

camille131

XLDnaute Nouveau
Re : liste déroulante dans une fonction si(et(......)

Bonjour,
dans le même style de question, est il possible d'afficher un liste déroulante comme réponse à une condition SI ?
pour mon problème en question j'ai différentes listes déroulantes en fonction du domaine.
J'écris :
=SI(B5="Isolation";réponse si vrai; "")
et j'aimerais que réponse si vrai soit une liste déroulante à laquelle j'ai donné un nom. Seulement ça ne fonctionne pas si je mets: =leNomDeLaListe

Quelqu'un peut-il m'aider ?
Merci d 'avance
 

Tibo

XLDnaute Barbatruc
Re : liste déroulante dans une fonction si(et(......)

Bonjour Camille et bienvenue sur XLD,

Il faut que la formule soit dans la définition de ta liste déroulante.

Commence par écrire en B5 : Isolation

Puis, Données - Validation - Liste - Source :

=SI($B$5="Isolation";$C$3:$C$8;"")

Si pas ça, reviens avec plus de détails, notamment un petit bout de fichier exemple commenté.

@+
 

Foufoudora

XLDnaute Occasionnel
Re : liste déroulante dans une fonction si(et(......)

Bonjour le fil, le forum

Permettez-moi de m'incruster dans ce fil.
Tibo ta formule fonctionne bien mais dans ma liste j'ai mis la formule décaler combinée à NBVAL
Code:
=SI($A$1="Alpha";DECALER($B$1;;;NBVAL($B:$B));"")
Tout fonctionne si la condition est vrai mais si la condition est "Faux" la liste n'affiche pas le vide "", la liste garde la valeur précédente si la condition est "vrai".
Comment je peux faire pour afficher un blanc quand la condition est fausse
Merci par avance.
Cordialement
 
Dernière édition:

camille131

XLDnaute Nouveau
Re : liste déroulante dans une fonction si(et(......)

Voici mon fichier, j'espère que vous vous y retrouverez.
http://cjoint.com/?iDlQK6WjXS
Maintenant ça fonctionne enfin mais je ne savais pas que le nom de la liste devait exactement être le même que l'élément précédent.
Maintenant j'aimerais pouvoir étendre mes fonctions jusqu'à la ligne 22.
Si je fais comme pour étendre une formule ça va pas d'enfer.. peut-être est ce que je manipule mal le tout ?
Aussi, dans le lien que tu me donnes, à quoi sert la fonction DECALER ? et NBVAL c'est quoi?
Merci ,
bon dimanche
Cam
 

Tibo

XLDnaute Barbatruc
Re : liste déroulante dans une fonction si(et(......)

à Camille,

Peux-tu rejoindre ton fichier enregistré au format 2003, car là, j'ai des hiéroglyphes.

Et si moins de 48.8 ko zippé, joins le fichier directement sur le Forum

@+
 

Foufoudora

XLDnaute Occasionnel
Re : liste déroulante dans une fonction si(et(......)

Bonjour le fil, le forum
Tibo, j'ai mis $D$1 à la place de "" dans la formule et maintenant quand je clique sur la liste j'ai un espace vide à choisir, est-ce qu'il y a un moyen d'afficher automatiquement le "vide" dès que la condition est "fausse".
Merci par avance
 

Tibo

XLDnaute Barbatruc
Re : liste déroulante dans une fonction si(et(......)

Foufoudora,

Une validation est en fait équivalente à une saisie manuelle.

On ne peut donc rien mettre automatiquement.

Sauf en VBA peut-être, mais là, je ne sais pas faire

@+
 

Discussions similaires

Réponses
8
Affichages
172

Statistiques des forums

Discussions
312 231
Messages
2 086 450
Membres
103 214
dernier inscrit
MASSA1616