Hoy vamos a hacer un registro histórico de cambios en Google Sheets. Este registro será personalizado, permitiéndote controlar qué información deseas registrar y cómo deseas visualizarla. Vamos a crear un registro de cambios que documente cada modificación en una hoja específica, mostrando el usuario que hizo el cambio, la celda modificada, el valor antiguo y nuevo, y la fecha del cambio.
Por qué crear un registro personalizado
Google Sheets tiene una función de historial de cambios, pero puede ser excesiva para ciertas necesidades. Con nuestro propio registro, tendremos control total sobre qué registrar y cómo mostrarlo, incluyendo:
- Qué hojas y celdas registrar.
- Si incluir o no la fecha y el usuario.
- Aplicar condiciones específicas para registrar solo ciertos cambios.
Paso a Paso: Creando el Registro Histórico de Cambios
Paso 1: Configurar el Script de Google Apps Script
- Abrir el Editor de Apps Script: Ve a
Extensiones > Apps Scripten tu Google Sheets. - Crear la función
onEdit:
function onEdit(e) {
registrarCambios(e);
}
- Crear la función para registrar los cambios:
function registrarCambios(e) {
var hojaRegistro = e.source.getSheetByName('Registro');
var hojaEditada = e.range.getSheet().getName();
if (hojaEditada == 'Registro') return; // Evita registrar cambios en la hoja de registro
var direccion = e.range.getA1Notation();
var valorNuevo = e.value;
var valorViejo = e.oldValue || "";
var fechaEdicion = new Date();
var usuario = Session.getActiveUser().getEmail();
hojaRegistro.appendRow([hojaEditada, direccion, valorViejo, valorNuevo, fechaEdicion, usuario]);
}
Paso 2: Crear la Hoja de Registro
- Crear una nueva hoja llamada
Registro:
- Abre un nuevo archivo en Google Sheets.
- Agrega una nueva hoja y nómbrala
Registro. - Agrega los siguientes encabezados en la primera fila:
Hoja EditadaRango EditadoValor ViejoValor NuevoFecha de EdiciónUsuario
Paso 3: Probar el Script
- Realizar Cambios en las Hojas:
- Abre una hoja diferente a la de
Registro. - Realiza algún cambio en una celda.
- Ve a la hoja
Registroy verifica que el cambio se haya registrado correctamente.
Paso 4: Refinar el Script
- Agregar Validaciones y Mejoras:
- Asegúrate de que los cambios en la hoja
Registrono se registren. - Añade condiciones para registrar solo ciertos tipos de cambios.
function registrarCambios(e) {
var hojaRegistro = e.source.getSheetByName('Registro');
var hojaEditada = e.range.getSheet().getName();
if (hojaEditada == 'Registro') return; // Evita registrar cambios en la hoja de registro
var direccion = e.range.getA1Notation();
var valorNuevo = e.value;
var valorViejo = e.oldValue || "";
var fechaEdicion = new Date();
var usuario = Session.getActiveUser().getEmail();
// Filtrar cambios en ciertas celdas, hojas, o valores
if (direccion == "A1" && hojaEditada == "Hoja1") return; // Ejemplo de filtro
hojaRegistro.appendRow([hojaEditada, direccion, valorViejo, valorNuevo, fechaEdicion, usuario]);
}
Paso 5: Implementar Condiciones Avanzadas (Opcional)
- Filtrar Cambios por Usuario, Hora, etc.:
- Agrega más condiciones en la función
registrarCambiospara registrar solo ciertos cambios.
function registrarCambios(e) {
var hojaRegistro = e.source.getSheetByName('Registro');
var hojaEditada = e.range.getSheet().getName();
if (hojaEditada == 'Registro') return; // Evita registrar cambios en la hoja de registro
var direccion = e.range.getA1Notation();
var valorNuevo = e.value;
var valorViejo = e.oldValue || "";
var fechaEdicion = new Date();
var usuario = Session.getActiveUser().getEmail();
// Filtrar cambios en ciertas celdas, hojas, valores, usuarios, etc.
if (direccion == "A1" && hojaEditada == "Hoja1") return; // Ejemplo de filtro
if (usuario == "correo@dominio.com") return; // Ejemplo de filtro por usuario
hojaRegistro.appendRow([hojaEditada, direccion, valorViejo, valorNuevo, fechaEdicion, usuario]);
}
Conclusión
¡Y eso es todo! Hemos creado un registro histórico de cambios en Google Sheets que te permite controlar exactamente qué se registra y cómo se visualiza. Este registro es una herramienta poderosa para monitorear y auditar cambios en tus hojas de cálculo de manera personalizada.
Si te ha gustado este tutorial, no olvides suscribirte al canal y dejar tus comentarios.