Liste déroulante conditionnelle multiple

Bonjour à tous,

Je souhaiterai trouver un moyen de réaliser une multitude de listes déroulantes suivant une valeur à chaque fois.

Je m'explique :

- Les données : je suis en présence, sur la première page, d'un tableau (tableau 1) avec 9 colonnes (et titres) et 24 éléments par colonne.

- Le problème : j'ai sur une seconde page un autre tableau (tableau 2).

Dans la première colonne de ce tableau 2 j'ai réalisé une liste déroulante très simple qui retourne le nom des colonnes du tableau 1. (aucun problème jusqu’ici)

Je souhaiterai que dans la seconde colonne de ce tableau, par ligne, il existe une liste déroulante dépendant de la valeur dans la première colonne. Est-ce possible sur Google Sheet ?

Exemple :

Tableau 1 :

ABCD
FruitBièrePaillePapa
LégumeEauVerreMaman
PainVodkaBoléeSoeur

Tableau 2 :

Liste choix titre :Liste valeur associée au titre
Si je choisis "B"
Ici liste avec "Bière" "Eau" et "Vodka"
Si je choisis "C"
Ici liste avec "Paille" "Verre" Bolée"
Si je choisis "B" (de nouveau)
Ici liste avec "Bière" "Eau" et "Vodka"

Je précise : la fonction "Filter" permet de réaliser ce que je souhaite mais seulement pour UNE seule ligne ! Mon tableau 2 peut avoir un infinité de ligne.... il me faudrait une infinité de colonne de filtre et ce n'est pas viable. (Je suppose)

Merci pour votre aide,

Bon weekend et bon confinement !

Bonjour à tous,

Voici un nouveau lien qui donnera exactement ce que je veux, il n'y aura pas d’ambiguïté (je me suis amusé un peu a vous faire les données) :

https://docs google com/spreadsheets/d/1zyTjmI5plYvrDIodHjaqcOo1R2yZekfweDulOqzgWs4/edit?usp=sharing

Quentin

Bonjour,

je vais regarder

https://docs.google.com/spreadsheets/d/1zyTjmI5plYvrDIodHjaqcOo1R2yZekfweDulOqzgWs4/edit#gid=0

mais réexplique ton sujet car j'ai l'impression qu'il ne correspond plus au fichier

Merci Steelson pour ton suivi.

Je vais réexpliquer mon besoin :

Via le logiciel sur internet Google Sheets je souhaite dans le fichier transmis par lien :

- Avoir un liste déroulante dans la colonne compétition donnant les noms des différentes compétition de football. (Déjà fait par mes soins)

- Avoir une seconde liste déroulante dans la colonne Domicile (et aussi Extérieur), donnant la liste des équipes en fonction de la compétition choisie par la liste en colonne C.

Ex :

- Si en C2 j'ai BUNDESLIGA : je souhaite qu'une liste déroulante en D2 (et aussi en E2) me permette de choisir Schalke, Bayern, Dortmund, Herta berlin...

- Si en C3 j'ai Ligue1 : je souhaite qu'une liste déroulante en D3 (et aussi en E3) me permette de choisir PSG, Lyon, Marseille, bordeaux, Nantes...

Et ainsi de suite à l'infini... (ou jusqu’en 998 à la rigueur).

Merci encore pour votre aide,

Quentin

En fait je ne la vois pas car je n'ai pas accès en écriture sans doute !

- Avoir un liste déroulante dans la colonne compétition donnant les noms des différentes compétition de football. (Déjà fait par mes soins)

En effet c'est corrigé. En suivant le lien sur ton dernier message on arrive au fichier à travailler.

Désolé pour le dérangement.

Contrairement à excel, google sheets ne permet pas la validation en utilisant INDIRECT qui aurait été une solution intéressante car tu as déjà nommé tes listes

BundesligaPremierLeagueChampionshipLigue2, etc.

Excel has this feature using an INDIRECT formula in Data Validation and can show the drop-down in the cell. It is used with NAMED RANGE also. This is not a feature of Google Sheets. Instead there are numerous scripts that will create dynamic drop-downs anywhere from 2 drop-downs up to many. Most I have used in one sheet is 4 drop-downs.

Il faut donc faire une macro.

Un exemple à adapter à ton fichier ...

https://docs.google.com/spreadsheets/d/1dZ8n5P6LTwVHipxl0TomRFhoWU42BQIPuYTaIDAwL-o/edit?usp=sharing

function onEdit(){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var datass = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("lists")
  var activeCell = ss.getActiveCell()
  if(activeCell.getColumn() == 1 && activeCell.getRow() > 1){
    activeCell.offset(0, 1).clearContent().clearDataValidations();
    var makes = datass.getRange(1, 1, 1,  datass.getLastColumn()).getValues();
    var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
    if(makeIndex != 0) {
    var validationRange = datass.getRange(3, makeIndex, datass.getLastRow());
    var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
    activeCell.offset(0, 1).setDataValidation(validationRule);
    }
  }
}

macro adaptée

mais pour activer, il faut ré-écrire dans la colonne compétition pour que la macro définisse la liste de validation des deux colonnes

function onEdit(){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var datass = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DATA2020")
  var activeCell = ss.getActiveCell()
  if(activeCell.getColumn() == 3 && activeCell.getRow() > 1){
    activeCell.offset(0, 1).clearContent().clearDataValidations();
    var makes = datass.getRange(1, 1, 1,  datass.getLastColumn()).getValues();
    var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
    if(makeIndex != 0) {
      var validationRange = datass.getRange(3, makeIndex, datass.getLastRow());
      var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
      activeCell.offset(0, 1).setDataValidation(validationRule);
    }
    activeCell.offset(0, 2).clearContent().clearDataValidations();
    var makes = datass.getRange(1, 1, 1,  datass.getLastColumn()).getValues();
    var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
    if(makeIndex != 0) {
      var validationRange = datass.getRange(3, makeIndex, datass.getLastRow());
      var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
      activeCell.offset(0, 2).setDataValidation(validationRule);
    }
  }
}

Salut,

il existe une solution sans macro. Voila le schéma. En rouge la ou il y a les formules, en vert l'utilisation finale. Bien à vous.

https://docs.google.com/spreadsheets/d/1jua0sdgitFNdR9SM0b9zHgY7GUpa1qF85pSdk9XLsuc/edit?usp=sharing

Très intéressant ... faut que je m'y penche sérieusement pour en comprendre la logique, mais bravo et merci !

Rechercher des sujets similaires à "liste deroulante conditionnelle multiple"