FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Menu déroulant conditionnels successifs google sheet

Règles du forum : Entraide concernant la programmation informatique en général, tous langages : recherche ou correction d'un code ou d'une fonction, aide à la réalisation d'un projet...
Pour la programmation web (HTML, CSS, PHP, MySQL...), il est conseillé de s'orienter dans le forum Webmastering.
Merci de lire et de respecter la charte générale du forum.

Répondre

Afin d’empêcher la création automatisée de comptes, nous vous demandons de réussir le défi ci-contre.
Smileys
:D :) :-) ;) :| :( :cry: :cheers: :hourra: :mv: :lol: :mdr: :bonjour: :hello: :jap: :siffle: :bisou: :P :o :x :roll: :good: :bad: :super: :reflexion: :suspect: :? :oops: :peur: :zen: :boude: :bug:

Revue du sujet : Menu déroulant conditionnels successifs google sheet Étendre la vue

Re: Menu déroulant conditionnels successifs google sheet

par Timon » mar. 26 déc. 2023 06:26
Bonjour,

Pour aborder votre problème avec le troisième menu, je vous suggère de vérifier si le script gère correctement les cas où les lieux et les produits sont identiques pour différentes sociétés, comme vous l'avez mentionné. Cela pourrait être une source de confusion pour le script.

Par ailleurs, avez-vous pensé à utiliser une banque image ia pour visualiser les différents éléments de votre menu déroulant? Par exemple, lorsqu'un utilisateur sélectionne "H&M", une image représentative pourrait s'afficher, et ainsi de suite pour les autres choix. Cela pourrait non seulement rendre l'interface plus interactive, mais aussi vous aider à identifier visuellement où le processus pourrait échouer.

Menu déroulant conditionnels successifs google sheet

par Redreamer » dim. 10 déc. 2023 11:24
Bonjour à Tous,

J'ai un petit soucis de menu déroulant conditionnels comme indiqué.
Je n'arrive pas à faire 3 menus conditionnels successifs. J'ai d'abord tenté en utilisant des formules sheet sans succès puis j'ai fait des essais avec le script mais je suis toujours bloqué au 3ème qui ne fonctionne pas correctement.

Est-ce que quelqu'un pourrait m'aiguiller dans ce problème ?

https://ibb.co/XLrzvHV

https://ibb.co/0Gvn2Xz

Sur la première image, la feuille principale où je souhaiterai avoir mes 3 menus déroulant sur toute la colonne excepté la 1ere ligne.
Sur la deuxième image, la structure de mes informations.

Pour illustrer d'un example, dans A2 je devrais avoir un menu déroulant avec CK, H&M et Dior.
Si je choisis H&M il devrait me proposer dans B2 un menu déroulant avec Milan, Berlin et Venise.
Si je choisis Venise Il devrait me proposer dans C2 un ménu déroulant avec Pull et T-Shirt.

Attention, les Lieux et les produits peuvent être identiques d'une société à une autre.

Voilà les deux premiers scripts (pour colonne A et B) :
function setupScrollingMenu() {
var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille principale");
var dvListe = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Listes");

var optionsRange = dvListe.getRange(1, 1, 1, 7);
var options = optionsRange.getValues()[0];

var dv = SpreadsheetApp.newDataValidation();
dv.setAllowInvalid(false);
dv.setHelpText("Choisir une société");
dv.requireValueInList(options, true);

feuille.getRange(2, 1, feuille.getLastRow()-1 , 1).setDataValidation(dv.build());
}





function onEdit(e) {
var feuillePrincipale = "Feuille principale";
var listesSheet = "Listes";

var activeSheet = e.source.getSheetByName(feuillePrincipale);

if (activeSheet.getName() == feuillePrincipale) {
var selectedCompany = activeSheet.getRange(e.range.rowStart, 1).getValue();

var listes = e.source.getSheetByName(listesSheet);

var companyRow = listes.getRange(2, 1, 1, listes.getLastColumn()).getValues()[0];
var companyIndex = companyRow.indexOf(selectedCompany);

if (companyIndex != -1) {
var locations = listes.getRange(2, companyIndex + 1, listes.getLastRow() - 1, 1).getValues().flat();


var ruleB = SpreadsheetApp.newDataValidation().requireValueInList(locations).build();
activeSheet.getRange(e.range.rowStart, 2).setDataValidation(ruleB);
} else {
activeSheet.getRange(e.range.rowStart, 2).clearDataValidations();
}
}
}


En vous remerciant par avance de tout les éléments que vous pourrez m'apporter.

T P
Game

J’ai toujours aimé essayer de nouveau[…]

Quand j’ai décidé d’essa[…]

Game

Ce site m’a impressionné par la quali[…]

Problème d'allumage

Bonjour à tous J'ai un souci avec mon pc de[…]