Codigo de ativar

				
					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
            }
        }
    }
}

				
			

Objetivo do Script

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:

  • Se for marcado, o valor original da coluna A na mesma linha é armazenado e substituído por 1.
  • Se for desmarcado, o valor original é restaurado. Se não houver um valor salvo, o campo recebe 0.

Passo 1: Abrindo o Editor de Scripts

  1. Abra sua Google Planilha.
  2. No menu, vá até Extensões > Apps Script.
  3. Apague qualquer código existente e cole o script abaixo.

Passo 2: Explicação do Código

Agora, vamos entender cada parte do código.

 

1. Definição da Função e Prevenção de Erros

				
					function onEdit(e) {
    if (!e || !e.range) return; // Evita erro ao rodar manualmente

				
			
  • onEdit(e) é um gatilho acionado quando uma célula é editada.
  • O if (!e || !e.range) return; impede que o script quebre caso seja executado manualmente (sem um evento e).

2. Identificando a Aba e a Coluna

				
					    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).

 

3. Manipulando Valores e Propriedades do Script

				
					        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

				
			
  • Obtém a linha da célula editada.
  • Obtém o valor do checkbox (true quando marcado, false quando desmarcado).
  • Obtém a célula correspondente na coluna A.
  • Usa PropertiesService.getScriptProperties() para salvar valores entre edições.

4. Salvando e Atualizando Valores

				
					        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
            }
        }

				
			
  • Se o checkbox for marcado (true):
    • O valor original da célula A é salvo antes de ser alterado para 1.
  • Se o checkbox for desmarcado (false):
    • Se houver um valor salvo, ele é restaurado.
    • Se não houver, define a célula como 0.

Passo 3: Testando o Script

  1. Vá até a aba "Gunma" da sua planilha.
  2. Marque um checkbox na coluna E.
    • A célula correspondente na coluna A deve mudar para 1.
  3. Desmarque o checkbox.
    • O valor original da coluna A deve ser restaurado ou, se não houver, definido como 0.

Passo 4: Possíveis Melhorias

  • Personalizar a coluna e a aba: Alterar Gunma e 5 conforme necessário.
  • Salvar valores em um banco de dados separado em vez de PropertiesService.
  • Criar logs para depuração.
 Alterar a Coluna A para Ficar em Branco, com uma Letra ou Número
1. Objetivo

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)


2. Código Original (Define “0” ao Desmarcar o Checkbox)

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
}

				
			

3. Alterando para Deixar a Célula em Branco

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
}

				
			

Testando as Mudanças

  1. Vá até a aba "sua aba" na planilha.
  2. Marque e desmarque um checkbox na coluna E.
  3. Veja como a coluna A responde de acordo com a alteração feita no código.

Agora você pode personalizar o comportamento conforme desejar! 🚀

Passo 1: Criar a Planilha

  1. Acesse o Google Planilhas (clique aqui).
  2. Crie uma nova planilha e renomeie a aba para “Gunma”.
  3. Configure a planilha assim:
A B C D E
(Será alterado pelo script) Nome Idade Cidade ✅ Checkbox

 

  1. Preencha algumas células na coluna A (por exemplo, "Teste 1", "Teste 2", etc.).
  2. Na coluna E, insira checkboxes:
    • Selecione várias células na coluna E.
    • Vá até Inserir > Caixa de seleção.
Post a comment

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima