29 mayo, 2023

DESBLOQUEAR CELDAS INDIVIDUALES DESPUÉS DE PROTEGER UNA HOJA CON TYPESCRIPT

Hola a todos!,

Siguiendo con los post anteriores, en el de hoy vamos a ver cómo podemos desproteger celdas individuales o rango después de haber protegido la hoja completa.

Vamos a utilizar el mismo código que usé para proteger y desproteger todas las hojas de un libro en este post.

Para lograr la desprotección de las celdas, es imprescindible que previamente desprotejamos la hoja y apliquemos la instrucción para desbloquear la celda o el rango. En el código lo veréis perfectamente:

async function main(workbook: ExcelScript.Workbook) {
  var nHojas = workbook.getWorksheets();
  nHojas.forEach((sheet) => {
    if (sheet.getProtection().getProtected() == true) {
      sheet.getProtection().unprotect("xWm1q")
      sheet.getRange("A1:D5").getFormat().getProtection().setLocked(false)
      sheet.getRange("A1:D5").getFormat().getFill().clear();
      sheet.getCell(6, 1).setValue('La ' + sheet.getName() + ' ' + 'está desprotegida');
    } else {
      sheet.getCell(6, 1).setValue('La ' + sheet.getName() + ' ' + 'está protegida pero el rango A1:D5 está desbloqueado');
      sheet.getRange("A1:D5").getFormat().getFill().setColor("FFFF00");
      sheet.getProtection().protect({}, "xWm1q")
    }
  });
}

En azul están las dos líneas de código que desprotegen la hoja (con contraseña) y desbloquean el rango A1:D5.

En el script he montado una ejecución donde cuando la hoja está desprotegida se muestra el mensaje: ‘La hoja() está desprotegida’.

Y cuando la hoja está protegida se muestra lo siguiente: ‘La hoja() está protegida pero el rango A1:D5 está desbloqueado’ y además el color del rango se muestra amarillo.

Y esto es todo, espero que sea de utilidad!!

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies