En tutoriales anteriores creamos un diseño básico de un menú de datos en las hojas de calculo de Google Sheets, este con ayuda de macros ingresa datos de una manera mas ágil y puede ser utilizado en distintos tipos de base de datos como: clientes, productos, agendas, envíos, finanzas, CMR, etc.
Un complemento importante para nuestra macro, en este caso, es la comprobación de celdas vacías, al usar un menú de datos para crear un historial y no incluir este complemento podemos caer en el error de ingresar datos vacíos a nuestra base. No necesitas ser un experto, en esta guía te daré todo el paso a paso para implementar la comprobación a tu macro. Video Tutorial.
{tocify} $title={Tabla de Contenido}
COMO GRABAR UNA MACRO
Podemos crear una macro directamente en la hoja de AppsScript vinculada a Google Sheets, sin embargo, la forma mas rápida y sencilla de crear la base de nuestra macro es usando la opción de grabar. ⚠️ Cualquier entrada de datos o movimiento que se hace en la hoja mientras se graba la macro se va a registrar, asi que no ejecuten tareas innecesarias.
Para grabar una macro vamos a la pestaña Extensiones > Macros > Grabar Macros, aquí ejecutan todas las acciones necesarias y finalizan con la opción "Guardar" para asignarle un nombre. Ahora, vamos a crear un botón desde Insertar > Imagen sobre celdas o Dibujo, sobre la imagen vamos a los tres puntos y en "Asignar secuencia de comandos" allí ingresamos el nombre con el que guardamos la macro.
VALIDACION DE CELDAS VACIAS
Tenemos distintas maneras de crear una validación y poder verificar que las celdas del menú de datos no están vacías, lo mas sencillo y rápido es crear variables para obtener de forma individual el rango de las celdas y hacer la comprobación a través de IF:
👀 VER MACRO:
▼
//Variables para obtener el rango de celdas, en este caso C4:C8 es el rango donde se ingresaran los datos
var cliente = spreadsheet.getRange("C5");
//Comprobación a través de IF para revisar si las celdas están vacias. En caso de estar vacías creara una alerta y no ingresará datos vacios a la base de datos.
if(cliente.isBlank())
{
Browser.msgBox("⚠️ERROR CELDA VACIA","El código de cliente está vacio.\\n\\nPor favor, intente de nuevo",Browser.Buttons.OK);
return;
}
La desventaja de esta validación es que debemos crear una variable para cada celda y así mismo asignar una comprobación a cada variable, es decir, a cada celda donde vamos a revisar si contiene o no datos. Por esta razón, les quiero compartir una validación un poco mas completa que se adapta bastante bien a lo que necesitamos.
VALIDACION DE RANGOS PARA DETECTAR CELDAS VACIAS
En este ejemplo, vamos a verificar un rango especifico de celdas C4:C8 para detectar si alguna de ellas está vacía. En caso de encontrar una celda vacía, se recopila los nombres que hemos aginado en el rango B4:B8 y mostrará un mensaje de alerta para tener en cuenta cuales datos nos falta ingresar.
👀 VER MACRO:
▼
//Obtiene el rango de celdas desde C4 hasta C8
var rangoC = spreadsheet.getRange('C4:C8');
//Obtiene los valores de las celdas en el rango especificado
var valoresC = rangoC.getValues();
//Obtiene el rango de celdas desde B4 hasta B8
var rangoB = spreadsheet.getRange('B4:B8');
//Obtiene los nombres correspondientes a las celdas en el rango B
var nombresB = rangoB.getValues();
//Inicia un arreglo para almacenar los nombres de las celdas vacías
var celdasVacias = [];
//Crea un bucle a través de cada fila del rango de valoresC
for (var fila = 0; fila < valoresC.length; fila++) {
// Verifica si la celda actual está vacía
if (valoresC[fila][0] === "") {
// Si está vacía, agrega el nombre correspondiente al arreglo celdasVacias
celdasVacias.push(nombresB[fila][0]);
}
}
//Comprueba si hay celdas vacías en el arreglo celdasVacias y muestra un mensaje de alerta con los nombres de las celdas vacías
if (celdasVacias.length > 0) {
Browser.msgBox('⚠️ ERROR CELDAS VACÍAS:', 'Los siguientes datos están vacíos: ' + celdasVacias.join(', '), Browser.Buttons.OK);
return;
}
La ventaja que tiene esta validación es que nos permite usar un arreglo para almacenar las celdas vacías, se crea un bucle de búsqueda para que no se detenga al encontrar la primera celda vacía y trae la lista completa de las que están vacías. De esta forma tendremos mayor claridad de aquellos datos que no hemos ingresado y traerá en tiempo real el nombre de las opciones (texto ingresado en B4:B8).