Descargas, guías, trucos, gameplays...

miércoles, 30 de mayo de 2012

Google Apps Script: Cuadros de dialogo inputBox y msgBox




Con el siguiente código aprenderemos como mostrar cuadros de dialogo en Google Hoja de Calculo ya sea para mostrar mensajes o para solicitar que se ingrese algún valor. Algo bastante sencillo.

En un proyecto nuevo en el Editor de secuencia de comandos copiar y pegar el siguiente código:

function ejemplo() {
    Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
    Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL);
}

Al ejecutar este código se observa lo siguiente:



para poder utilizar el dato ingresado en el inputBox y asignarlo a una celda se escribe lo siguiente:

function ejemplo() {
function ejemplo() {
    Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
    SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange("A1").setValue(Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL));
}}

o bien se puede ordenar mejor de la siguiente forma:

function ejemplo() {
  Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
  
  var libro = SpreadsheetApp.getActiveSpreadsheet();
  var hoja = libro.getSheets()[0];
  var nombre = Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL); 
  var celda = hoja.getRange("A1");
  celda.setValue(nombre);
}

con este último código el dato ingresado en el inputBox se asigna a la celda A1.






9 comentarios:

  1. Hola, quisiera saber cómo hago para que este msgbox se ejecute automaticamente al abrir el documento?

    ResponderEliminar
    Respuestas
    1. Para eso la función debe llamarseÑ

      function onOpen(e) {
      }



      Por ejemplo:

      function onOpen(e) {
      Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
      Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL);
      }

      Eliminar
  2. Mil Gracias Willian, excelente tu respuesta.

    ResponderEliminar
    Respuestas
    1. Por nada. Si tienes otra consulta y puedo ayudar, con mucho gusto.

      Eliminar
  3. Como podria usar cuadros de dialogo mas elaborados que un inputBox o msgBox?
    Gracias por tu ayuda

    ResponderEliminar
    Respuestas
    1. Henry. Perdón por la tardanza.

      Si es posible hacer cuadros de diálogo más elaborados o personalizados. Mira este ejemlo:

      https://docs.google.com/spreadsheets/d/1d1Dt9n18_afY5JYBJ9tqr6Ka0ODCOPPSnlzZo21TMbQ/edit?usp=sharing

      En el menú das clic a: Menú personalizado>Cuadro personalizado
      Para ver el código das clic a: Herramientas>Editor de secuancia de comandos...

      Los cuadros como veras los puedes elaborar usando HTML, CSS y las funciones se las das a los botones con Scripts

      Eliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Buen dia como pueda hacer para que el msgbox lo vean todos los usuarios conectados a la hoja de calculo cuando ejecuto el script. Es posible?

    ResponderEliminar
  6. Hola. Gracias por el aporte. Es lo que buscaba...
    agregué otros Inputbox, como puedo hacer para que se agreguen a otras celdas?

    Esto es lo que modifiqué

    function ejemplo() {
    var libro = SpreadsheetApp.getActiveSpreadsheet();
    var hoja = libro.getSheets()[0];
    var fecha = Browser.inputBox("Fecha de Ingreso","ingresar Fecha", Browser.Buttons.OK_CANCEL);
    var nombre = Browser.inputBox("Nombre","Ingresar nombre", Browser.Buttons.OK_CANCEL);
    var cuenta = Browser.inputBox("Cuenta Corriente","ingresar Cuenta", Browser.Buttons.OK_CANCEL);

    var celda = hoja.getRange("A1");
    celda.setValue(fecha);
    }

    ResponderEliminar