Google Scripts : Dando valor a un Rango de Celdas

Vamos a seguir con una forma muy practica de asignar un valor a una o rango de celdas. Para aclarar lo de Rango, lo podemos definir como una selección de 1 a n celdas, siendo esta selección siempre conjunta y consecutiva de manera de formar un rectángulo. Es decir podemos seleccionar las celdas b1, b2, b3,  c1, c2, y c3, pero no b1, b2, b3, y d8.

Aclarado lo que queremos entender por Rango, retomamos nuestra serie de códigos. En la función onOpen(), incluimos la siguiente linea :

 {name: "Rellenar Celdas", functionName: "rellenarCeldas"},

La función quedaría así:

function onOpen() {
 var planilla = SpreadsheetApp.getActiveSpreadsheet();
 var itemsDeAcciones = [
 {name: "Rellenar Celdas", functionName: "rellenarCeldas"},
 {name: "Recordar mi Email", functionName: "recordarEmail"},
 {name: "Pedir Nacionalidad", functionName: "pedirNacionalidad"}];
 planilla.addMenu(“Acciones”, itemsDeAcciones);
}

Ahora que ya tenemos nuestro nueva acción en el menú, vamos a establecer la funcionalidad propiamente dicha:

function rellenarCeldas() {
  var rellenar = Browser.inputBox("Rellenar las Celdas con:");
  SpreadsheetApp.getActiveRange().setValue(rellenar);
}

Paso a explicar el código de las siguiente forma. Se define una nueva función como habíamos aprendido anteriormente, se establece una nueva variable rellenar con la información que suministre el usuario a través de un cuadro de diálogo con el método inputBox(). Luego para el documento actual, se obtiene el Rango de Celdas seleccionadas con el método getActiveRange(), y a las mismas se les asigna un valor dado setValue().

Cabe recordar que para la prueba del ejemplo el usuario antes de elegir la acción del menú, debería hacer su selección de celdas.

Como siempre, para probar todo esto, guardamos el código en el editor, y recargamos la página en el navegador.

Antes de pensar que hoy hemos terminado, pensemos en que otras formas podemos asignar valores a una celda. Pensemos en poder indicar la celda y su valor. Reiniciamos entonces en la función onOpen(), incluimos la siguiente linea :

 {name: "Asignar Valor", functionName: "asignarValor"},

La función quedaría así:

function onOpen() {
 var planilla = SpreadsheetApp.getActiveSpreadsheet();
 var itemsDeAcciones = [
 {name: "Asignar Valor", functionName: "asignarValor"},
 {name: "Rellenar Celdas", functionName: "rellenarCeldas"},
 {name: "Recordar mi Email", functionName: "recordarEmail"},
 {name: "Pedir Nacionalidad", functionName: "pedirNacionalidad"}];
 planilla.addMenu(“Acciones”, itemsDeAcciones);
}

Ahora que ya tenemos nuestro nueva acción en el menú, vamos a establecer la funcionalidad propiamente dicha:

function asignarValor() {
  var planilla = SpreadsheetApp.getActiveSpreadsheet();
  var celda = Browser.inputBox("Indique la Celda:");
  var valor = Browser.inputBox("Indique el Valor:");

  if (typeof valor != "number") {
    // comprobamos que valor sea un número
    Browser.msgBox("El Valor ingresado, no es un número");
  } else {
    planilla.getRange(celda).setValue(valor);
    Browser.msgBox("Se ha asignado a la celda " + celda + ", el valor numérico " + valor );
  }

}

Paso a explicar el código de las siguiente forma. En realidad, salvo la última linea las demás ya son conocidas; lo único que introducimos en este ejemplo es el uso del método getRange(). Además hemos empleado un condicional if y de la palabra reservada typeof . Ambas se explican por sí mismas, pero sino, no se preocupen. Estas son las razones por las que Google eligió Javascript, existe un millón uno de tutoriales que explicarán mejor que este servidor su utilidad.

Esta entrada fue publicada en General, Tecnología IT. Guarda el enlace permanente.

2 respuestas a Google Scripts : Dando valor a un Rango de Celdas

  1. Pingback: Puentes Diaz Blog » Google Scripts : Programando Facil una Planilla de Cálculo

  2. Alain Lugo dijo:

    me parece muy interesante, pero me agradaria que dieran mas ejemplo para sites que para docs, la verdad he estado leyendo el api y no lo comprendo muy bien, ya que no vienen ejemplos de uso de los metodos o clases,, saludos

Deja un comentario