function onEdit(e) {
if (!e || !e.range) return; // Evita erro ao rodar manualmente
var sheet = e.source.getActiveSheet();
var range = e.range;
// Verifica se a edição foi na aba "Gunma" e na coluna E (coluna 5)
if (sheet.getName() === "Gunma" && range.getColumn() == 5) {
var row = range.getRow();
var checkboxValue = range.getValue();
var targetCell = sheet.getRange(row, 1); // Coluna A
var scriptProperties = PropertiesService.getScriptProperties();
var cellKey = "A" + row; // Identificador único para a célula A
if (checkboxValue === true) {
// Salva o valor original antes de apagá-lo
scriptProperties.setProperty(cellKey, targetCell.getValue());
targetCell.setValue(1); // Marca como 1 na coluna A
} else {
// Recupera o valor salvo antes e restaura
var originalValue = scriptProperties.getProperty(cellKey);
if (originalValue !== null) {
targetCell.setValue(originalValue); // Restaura o valor original da coluna A
} else {
targetCell.setValue(0); // Se não houver valor salvo, marca como 0
}
}
}
}
Esse script é acionado automaticamente quando uma célula é editada na aba chamada "Gunma", especificamente na coluna E. Quando um checkbox (✅) nessa coluna é marcado ou desmarcado:
1.0.Agora, vamos entender cada parte do código.
function onEdit(e) {
if (!e || !e.range) return; // Evita erro ao rodar manualmente
onEdit(e) é um gatilho acionado quando uma célula é editada.if (!e || !e.range) return; impede que o script quebre caso seja executado manualmente (sem um evento e).
var sheet = e.source.getActiveSheet(); // Obtém a aba ativa
var range = e.range; // Obtém a célula editada
if (sheet.getName() === "Gunma" && range.getColumn() == 5) {
sheet.getName() verifica se a edição foi na aba "Gunma".range.getColumn() == 5 assegura que o script só funciona se a célula editada estiver na coluna E (5ª coluna).
var row = range.getRow(); // Obtém a linha editada
var checkboxValue = range.getValue(); // Obtém o valor do checkbox (true ou false)
var targetCell = sheet.getRange(row, 1); // Obtém a célula na Coluna A
var scriptProperties = PropertiesService.getScriptProperties();
var cellKey = "A" + row; // Cria uma chave única para armazenar o valor
true quando marcado, false quando desmarcado).PropertiesService.getScriptProperties() para salvar valores entre edições.
if (checkboxValue === true) {
scriptProperties.setProperty(cellKey, targetCell.getValue());
targetCell.setValue(1); // Define a célula A como 1
} else {
var originalValue = scriptProperties.getProperty(cellKey);
if (originalValue !== null) {
targetCell.setValue(originalValue); // Restaura o valor original
} else {
targetCell.setValue(0); // Se não houver valor salvo, define como 0
}
}
true):
1.false):
0."Gunma" da sua planilha.1.0.Gunma e 5 conforme necessário.PropertiesService.Modificar o script para que, ao desmarcar o checkbox na coluna E, a célula correspondente na coluna A:
✅ Fique em branco (“”)
✅ Contenha uma letra (“X”, por exemplo)
✅ Exiba um número (999, por exemplo)
No código original, quando o checkbox é desmarcado, a célula A recebe 0 caso não tenha um valor salvo:
} else {
targetCell.setValue(0); // Se não houver valor salvo, marca como 0
}
Se quiser que a célula fique vazia ao desmarcar o checkbox, substitua a linha por:
} else {
targetCell.setValue(""); // Mantém a célula vazia
}
"sua aba" na planilha.Agora você pode personalizar o comportamento conforme desejar! 🚀
| A | B | C | D | E |
|---|---|---|---|---|
| (Será alterado pelo script) | Nome | Idade | Cidade | ✅ Checkbox |
"Teste 1", "Teste 2", etc.).