Cómo hacer validaciones automáticas con Google Apps Script

Artículo referente a como usar Google Apps Script en spreadsheets

Las validaciones son una manera muy útil de rellenar información en una hoja de cálculo ya que solo nos permiten introducir la información que queremos en el formato que queremos.


El problema es que a veces el contenido de estas validaciones ha de poder variar con el tiempo o en función del resto de información que hemos ido almacenando en la hoja. Esto solo se puede hacer mediante Google Apps Script.

Aunque no lo creáis es más sencillo de lo que parece y abre un mundo enorme a trabajar en este tema.

El código más sencillo (al menos que yo conozca) para hacer las validaciones desde GAS es el siguiente:
function Validacion()
{
   var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = spreadsheet.getActiveSheet();
   var values = ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre" , "Diciembre"];
   var rule = SpreadsheetApp.newDataValidation().requireValueInList(values).build();

   for(var i = 0 ; i < 20 ; ++i )
   {
     sheet.getRange(i+1, 1).setDataValidation(rule);
   }
}

Si os fijáis con el newDataValidation creamos la nueva norma de validación y con el setDataValidation incluiremos esa norma en la casilla que queramos.

Las opciones que ofrece el newDataValidation son muchas y variadas, yo solo he puesto como ejemplo el hecho de pasarle un lista de strings para usarlas como validación, pero realmente existen gran variedad de tipos de validación (que el número esté en un cierto rango, que la palabra que escribamos contenga un cierto tipo de letras,etc..)

Por hoy lo dejamos aquí. Si practicais un poco vereis que la potencia de esta herramienta no tiene fin.
Solo para aquellos que queréis practicar un poco mas en casa. Posibles usos de newDataValidation+setDataValidation:
- Que un valor solo se pueda escoger en una celda de la hoja. A medida que se van seleccionando valores las validaciones van cambiando para quitar el resto de opciones.
- Que los límites númericos de una casilla dependan de una cadena de texto (podríamos por ejemplo en una casilla decidir si una variable es de tipo char, short o int y en la casilla donde toque poner el valor que solo nos permita poner un valor que quepa en el tipo de variable que hemos seleccionado)

Esto son solo ejemplos, el límite lo ponéis vosotros.

Nos vemos

1 comentario:

  1. Hola gracias por tu información, dime este Script puede servirme para esta situación: tengo un archivo con dos hojas en una hoja tengo una columna con 3500 filas que es la base de datos de mi negocio, en otra hoja tengo validación de datos (lista) entonces cuando tomo pedidos utilizo rápidamente los datos de mis clientes y puedo editar y agregar información del pedido, asi funciona perfectamente en la web pero en el celular no me funciona. ¿este Script seria la solución? Desde ya agradezco su respuesta

    ResponderEliminar

Tal vez te interese