Google Planilhas Avançado - #77 Menus Dependentes Múltiplos
13/02/2021Nesse tutorial vamos aprender como criar menus dependentes dropdown múltiplos utilizando o Google Planilhas usando Google Apps Script.
Menus dropdown dependentes em várias linhas
O Google Planilhas ainda não conta com a opção nativa de menus dependentes, diante disso precisamos implementar essa funcionalidade através do código:
Através do método: requireValueInRange
let app=SpreadsheetApp;
let spreadsheet=app.getActiveSpreadsheet();
let sheet=spreadsheet.getSheetByName("Menus");
let db=spreadsheet.getSheetByName("DB");
let ui=app.getUi();
function onEdit(e)
{
if(e.range.getColumn()==2 && e.source.getSheetName() == "Menus"){
if(e.value != undefined){
setValidation(e);
}else{
clearValidation(e);
}
}
}
function setValidation(e)
{
let cell = sheet.getRange(`C${e.range.getRow()}`);
let options=db.getRange('A1:J1').getValues();
let colData;
for(let row=0; row < options.length; row++){
for(let col=0; col < options[row].length; col++){
if(e.value == options[row][col]){
colData = col + 1;
}
}
}
let range = db.getRange(2, colData, 100, 1);
let rule = app.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
}
function clearValidation(e)
{
let cell = sheet.getRange(`C${e.range.getRow()}`);
cell.setDataValidation(null);
cell.clear();
}
Através do método: requireValueInList
Uma outra maneira de implementar esse menu dropdown é utilizando o método requireValueInList. Vamos ver como funciona:
//Menus Dependentes Múltiplos
function menusDependentes(e)
{
let selectValue=e.value;
let cell = sheetContas.getRange("G"+e.range.getRow());
if(selectValue == undefined){
cell.setDataValidation(null);
cell.clear();
}else{
let values=sheetCategorias.getRange("A2:C").getValues();
let arr=[];
values.map((elem,ind,obj)=>{
if(elem[0]!=""){
if(elem[0] == selectValue){
arr.push(elem[1]);
}
}
});
let rule = app.newDataValidation().requireValueInList(arr).build();
cell.setDataValidation(rule);
}
}
Então é isso pessoal, por hoje é só! Sucesso nos códigos e na vida!
Precisa personalizar sua planilha? webdesignemfoco@gmail.com
Posts Relacionados
Google Planilhas Avançado - #76 Importando CSV
Nesse tutorial realizaremos a integração do Google Planilhas com um arquivo CSV oriundo do nosso computador.
Google Planilhas Avançado - #78 Concatenando Várias Fórmulas
Nesse tutorial aprenderemos a concatenar várias formas e tentando resolver problemas com apenas uma linha de fórmula.