Necesito proteger varias hojas a la vez en google documentos

Necesito proteger varias hojas de cálculo de google documentos a la vez. Tengo 12 hojas y de esas 12 hojas necesito proteger las 12 hojas con los mismos rangos desprotegidos

1 Respuesta

Respuesta

Primero que nada las hojas de calculo de google no es excel, segundo no usa visual basic, si no javascript, así que probablemente no puedas encontrar ayuda con esas etiquetas, pero de lo poco que sé de javascript puedes usar algo así:

function proteger() {
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Hoja 1'), true);
  spreadsheet.getRange('B4:B8').activate();
  var protection = spreadsheet.getActiveSheet().protect();
  protection.setUnprotectedRanges([spreadsheet.getRange('B4:B8')])
  .setWarningOnly(true);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Hoja 2'), true);
  spreadsheet.getRange('B4:B8').activate();
  var protection = spreadsheet.getActiveSheet().protect();
  protection.setUnprotectedRanges([spreadsheet.getRange('B4:B8')])
  .setWarningOnly(true);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Hoja 3'), true);
  spreadsheet.getRange('B4:B8').activate();
  var protection = spreadsheet.getActiveSheet().protect();
  protection.setUnprotectedRanges([spreadsheet.getRange('B4:B8')])
  .setWarningOnly(true);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Hoja 4'), true);
  spreadsheet.getRange('B4:B8').activate();
  var protection = spreadsheet.getActiveSheet().protect();
  protection.setUnprotectedRanges([spreadsheet.getRange('B4:B8')])
  .setWarningOnly(true);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Hoja 5'), true);
  spreadsheet.getRange('B4:B8').activate();
  var protection = spreadsheet.getActiveSheet().protect();
  protection.setUnprotectedRanges([spreadsheet.getRange('B4:B8')])
  .setWarningOnly(true);
};

Solo es un ejemplo pero te bloquea las hojas de la 1 a la 5 menos las celdas B4:B8.

Mucho más simplificado úsala así:

function proteger() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheets = spreadsheet.getSheets();
  for ( var i = 0; i < sheets.length ; i++)
  {
    spreadsheet.setActiveSheet(sheets[i])
    spreadsheet.getRange('B4:B8').activate();
    var protection = spreadsheet.getActiveSheet().protect();
    protection.setUnprotectedRanges([spreadsheet.getRange('B4:B8')])
    .setWarningOnly(true);
  }
};

Solo cambia tus rangos que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas