Cómo copiar protecciones al duplicar hojas en Google Sheets

En este tutorial te mostraré cómo copiar protecciones en Google Sheets usando Google Apps Script, de manera que cuando dupliques una hoja, también se dupliquen sus protecciones. Esto es muy útil para quienes gestionan archivos colaborativos y necesitan mantener la seguridad de ciertos datos al duplicar hojas, ya que la funcionalidad nativa de Google Sheets no copia las protecciones automáticamente. Aprenderás paso a paso cómo hacerlo y cómo personalizar el código para tus necesidades.

Si prefieres ver el tutorial en video, te lo dejo justo arriba. Ahora, vamos paso a paso con el método que yo uso para copiar protecciones en Google Sheets.

¿Por qué no se copian las protecciones al duplicar una hoja?

Cuando duplicas una hoja en Google Sheets usando la función nativa, las protecciones no se copian. Esto puede ser un problema si tienes información sensible o rangos que solo ciertos usuarios pueden editar. Por eso, en este tutorial, te enseño cómo crear un menú personalizado que te permitirá duplicar una hoja y copiar sus protecciones automáticamente.

Tipos de protecciones en Google Sheets

Antes de entrar en el código, es importante entender que existen tres tipos de protecciones:

  • Protección de hoja completa: Protege toda la hoja.
  • Protección de rango: Protege un rango específico de celdas.
  • Protección de hoja exceptuando ciertos rangos: Protege toda la hoja excepto algunos rangos (no lo cubrimos en este tutorial, pero se puede adaptar el código).

Cómo crear protecciones básicas

Para proteger una hoja o un rango, sigue estos pasos:

  • Ve a Datos > Proteger hojas e intervalos.
  • Selecciona si quieres proteger una hoja o un rango.
  • Agrega una descripción (opcional pero recomendado).
  • Configura los permisos para que solo tú puedas editar.

Así tendrás tu hoja o rango protegido. Sin embargo, si duplicas la hoja, la protección no se transfiere. Por eso, vamos a automatizar este proceso con Apps Script.

¿Qué sucede al copiar un archivo completo?

Si copias un archivo completo de Google Sheets, sí se copian las protecciones. Pero si solo quieres duplicar una hoja dentro del mismo archivo o a otro archivo, las protecciones no se copian. Aquí es donde entra el script que vamos a crear.

Creando el script para copiar protecciones de hoja

Ahora sí, vamos a lo interesante. Abre tu archivo de Google Sheets y sigue estos pasos:

  • Haz clic en Extensiones > Apps Script.
  • Crea un nuevo proyecto y asígnale un nombre, por ejemplo, Copiar protecciones.

Este es el método que yo uso para copiar las protecciones de una hoja:

// Conectarse al archivo activo
var libro = SpreadsheetApp.getActiveSpreadsheet();

// Obtener la hoja activa (la hoja que quieres duplicar)
var hoja = libro.getActiveSheet();

// Obtener las protecciones de tipo hoja
var proteccionesHoja = hoja.getProtections(SpreadsheetApp.ProtectionType.SHEET);

// Copiar la hoja al mismo archivo
var hojaNueva = hoja.copyTo(libro);

// Si la hoja original está protegida, proteger la nueva
if (proteccionesHoja.length > 0) {
  hojaNueva.protect();
}

Te explico cómo funciona cada parte del código:

  • getActiveSpreadsheet(): Obtiene el archivo actual.
  • getActiveSheet(): Obtiene la hoja donde estás parado.
  • getProtections(ProtectionType.SHEET): Devuelve un arreglo con las protecciones de tipo hoja.
  • copyTo(libro): Duplicas la hoja en el mismo archivo.
  • protect(): Protege la nueva hoja si la original estaba protegida.

¿Qué debes tener en cuenta?

Este código es el punto de partida. Si quieres copiar la hoja a otro archivo, puedes usar openByUrl o openById para conectar con otro archivo. Además, si la hoja original tiene excepciones en la protección, deberás adaptar el código para copiar también esas reglas.

Ejemplo de tabla con protecciones

Supón que tienes la siguiente tabla y quieres proteger la hoja y además un rango específico:

AutorFechaComentario
Juan2024-06-01Ejemplo
María2024-06-02Prueba

En este caso, puedes proteger toda la hoja y, adicionalmente, proteger solo el rango de “Autor” y “Fecha”. El código anterior cubre la protección de hoja completa. Si quieres copiar también protecciones de rango, deberás agregar lógica adicional para identificar y proteger los mismos rangos en la hoja duplicada.

Conclusión y próximos pasos

En este tutorial aprendiste cómo duplicar hojas en Google Sheets copiando sus protecciones usando Google Apps Script. Este método te ahorra tiempo y te da mayor seguridad al trabajar en equipo. Puedes personalizar el script para copiar a otros archivos o para incluir protecciones de rango. Si quieres profundizar más, en mi academia hay un curso de más de 50 lecciones sobre protecciones avanzadas.

Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.