Untitled
function embaralharLinhasECriarPaginas() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = ss.getSheetByName('Página1'); // Obter todos os dados da Página1 var data = sheet1.getDataRange().getValues(); // Criar 24 novas páginas com nomes específicos for (var i = 0; i < 24; i++) { var newSheetName = 'Semana ' + (i * 2 + 1).toString().padStart(2, '0') + ' a ' + (i * 2 + 2).toString().padStart(2, '0'); // Nomes das novas páginas var newSheet = ss.getSheetByName(newSheetName); if (!newSheet) { newSheet = ss.insertSheet(newSheetName); } else { newSheet.clear(); // Limpar a nova página antes de adicionar novos dados } // Copiar a primeira linha para a nova página newSheet.appendRow(data[0]); // Remover a primeira linha dos dados a serem embaralhados var dataToShuffle = data.slice(1); // Embaralhar as linhas restantes for (var j = dataToShuffle.length - 1; j > 0; j--) { var k = Math.floor(Math.random() * (j + 1)); var temp = dataToShuffle[j]; dataToShuffle[j] = dataToShuffle[k]; dataToShuffle[k] = temp; } // Adicionar as linhas embaralhadas na nova página if (dataToShuffle.length > 0) { newSheet.getRange(2, 1, dataToShuffle.length, dataToShuffle[0].length).setValues(dataToShuffle); } // Colorir as linhas alternadamente na nova página colorirLinhasAlternadas(newSheet); } } function colorirLinhasAlternadas(sheet) { var numRows = sheet.getLastRow(); var numCols = sheet.getLastColumn(); var colors = ['#fff2cc', '#f4cccc']; var blockSize = Math.ceil(numRows / 12); // Modificado de 14 para 12 var backgrounds = []; for (var i = 2; i <= numRows; i++) { // Começar da segunda linha, pois a primeira é fixa var colorIndex = Math.floor((i - 2) / blockSize) % 2; // Ajuste no índice para começar da segunda linha var rowColors = new Array(numCols).fill(colors[colorIndex]); backgrounds.push(rowColors); } if (backgrounds.length > 0) { sheet.getRange(2, 1, backgrounds.length, numCols).setBackgrounds(backgrounds); } } function onEdit(e) { var sheet = e.source.getActiveSheet(); var range = e.range; // Verifica se a edição ocorreu na coluna D (coluna 4) if (range.getColumn() == 4) { var row = range.getRow(); var value = range.getValue().toLowerCase(); var colors = ['#fff2cc', '#f4cccc']; var blockSize = Math.ceil((sheet.getLastRow() - 1) / 12); // Modificado de 14 para 12 var originalColor = colors[Math.floor((row - 2) / blockSize) % 2]; if (value === "ok") { // Define a cor da linha para #a0e34d e armazena a cor original na propriedade de usuário sheet.getRange(row, 1, 1, sheet.getLastColumn()).setBackground("#a0e34d"); PropertiesService.getDocumentProperties().setProperty("row_" + row, originalColor); } else { // Recupera a cor original da propriedade de usuário var storedColor = PropertiesService.getDocumentProperties().getProperty("row_" + row); sheet.getRange(row, 1, 1, sheet.getLastColumn()).setBackground(storedColor); } } } function onOpen() { SpreadsheetApp.getUi().createMenu('Custom Scripts') .addItem('Executar Main', 'main') .addToUi(); } function main() { embaralharLinhasECriarPaginas(); }
Leave a Comment