Alinear los datos en una de las hojas de cálculo que utilizo para anotar los progresos de mis alumnos de 1º ESO se estaba volviendo un auténtico suplicio.
Por fortuna, los chicos de Google están dotando cada día de más funcionalidad a Google Drive y ya es posible definir secuencias de comandos en JavaScript pero con una API tan interesante que podríamos hacer casi cualquier cosa con cualquiera de los productos de Google que usemos (enviar correos electrónicos, añadir estadísticas de Google Analytics, crear eventos en el calendario, …).
Como siempre, el único límite es… nuestra imaginación y la mía, por «calenturienta» es una olla que está logrando alcanzar el punto de ebullición con el abanico de posibilidades que se presenta ante nosotros 😉
Puesta en antecedentes
Echando de menos la posibilidad de rotar los textos que ofrecen productos como LibreOffice Writer me tenía que limitar a acordarme de pulsar CTRL+ENTER tras escribir cada carácter de una palabra para lograr el efecto deseado
«Cansado» tras tener que hacerlo más de dos ocasiones me decidí a utilizar las «macros» de Google Drive: sabía que existían pero no había encontrado la excusa/ganas para ponerme a investigar cómo funcionaban 😉
¡Tenía que haberlo hecho antes!
Creando una macro
Seleccionamos la opción Herramientas > Editor de secuencia de comandos
e indicamos el tipo de proyecto a crear (en mi caso se trata de una hoja de cálculo)
Automáticamente obtendremos un esqueleto con el código base listo para poder empezar a definir la funcionalidad que deseamos crear.
Observa la función onOpen() donde podemos definir nuestras propias opciones de menú, facilitando de este modo acceder a los comandos que creemos.
NOTA: para que aparezca el menú la primera vez tendrás que ejecutar el código
Alineación vertical
Gracias a la fantástica documentación de la API existente pude lograr el objetivo que me marqué al principio (rotar el texto) creando el siguiente código en JavaScript
function alinearVerticalmente() { var activeSheet = SpreadsheetApp.getActiveSheet(); var range = activeSheet.getActiveRange(); var valores=range.getValues(); for(var i=0;i<valores.length;i++){ for(var j=0;j<valores[i].length;j++){ valores[i][j]=valores[i][j].toString().split("").join("\n"); } } range.setValues(valores); }
Creo que no merece la pena alargar el artículo con los detalles concretos; si alguien desea cualquier aclaración o ampliar información no tiene mas que pedirlo en los comentarios 😉
Conclusión
Fantástica posibilidad la de crear nuestras propias macros y funciones (¿echas de meno alguna función existente en hojas de cálculo como Excel o LibreOffice Calc?… ¡créala tú mismo! ;)) utilizando todos y cada uno de los servicios de Google (incluidos en la API)
Al principio puede que te cueste acostumbrarte a programar para Google Drive pero, a poco que le dediques un rato, no dejarás de inventar nuevas opciones para tus documentos y, si no terminas de cogerle el punto, prueba a buscar en el amplio repositorio de scripts que otros usuarios ya han publicado.
Interesante… Habrá que echarle un ojo un día…
Me gustaMe gusta
No dejes para mañana lo que puedas hacer hoy compi 😉 [realmente merece la pena]
Me gustaMe gusta
Hola que tal, esta buena la macro para los que iniciamos, podrias ayudarme con una uqe me mande una alerta o notificacion al correo, es de fechas de vencimientos
Me gustaMe gusta
Gracias por la información. soy un usuario muy activo en Google Drive y aunque me falta un monton en Macros, lo intentare.
Saludos
Me gustaMe gusta
Ya nos contarás cómo te va.
Cualquier cosa que necesites no dudes en preguntar.
Salu2
Me gustaMe gusta
necesito crear una macro para q no me reciba cedulas duplicadas en un formulario de google me podrian ayudar es para un trabajo y la verdad no se como hacerle!!
Me gustaMe gusta
Interesante, pero no deja de ser tedioso tener que programar para cambiar la orientación de un texto… una macro es para cosas mayores. Saludos
Me gustaMe gusta
Totalmente de acuerdo; el artículo no deja de ser un ejemplo sencillo (a modo de introducción) para despertar la curiosidad frente a las posibilidades que ofrece 😉
Me gustaMe gusta
Funciona muy bien, pero si quiero tener una alineacion de 90°???
Me gustaMe gusta
Con las herramientas que ofrece actualmente la API, sólo se me ocurre utilizando «Dibujos de Google» (y no es precisamente sencillo)
Me gustaMe gusta
Yei! muy util!
Oye, yo he estado buscando una solucion a lo siguiente:
Quisiera poder crear eventos de calendar en automatico al ingresar una fecha a cierta celda. Ejemplo, cuando yo ponga 2 de feb en «x» celda, en automatico se cree un evento en calendar y tome en consideracion los horarios establecidos en celdas contiguas y agregue informacion de la misma manera.
No he encontrado ningun complemento que me dé esta funcion, no se si exista o quizas con alguna macro.
Gracias!
Me gustaMe gusta
Totalmente factible a través de la API añadir a Calendar; otra cosa es poder usar el evento «change» de una celda
Me gustaMe gusta
Me quede en blanco haha me podrías explicar un poco mas de como pudiera realizarlo?
Muchas gracias!
Me gustaMe gusta
Deberás utilizar el evento onEdit(…) de la hoja de cálculo.
Hay bastantes ejemplos y documentación en Google Developers, espero que te sirva para solucionar el problema.
Suerte y un saludo
Me gustaMe gusta
Buenas tardes. Tengo una consulta, tengo una hoja de cálculo con extensión de macros .xlsm que he subido a Google Drive para compartirlo. Pero sucede que no puede abrirse, es decir me sale un mensaje » el archivo no existe», a pesar de enviarlo a mí misma e intentar abrirlo desde mi pc. Hay posibilidad de ejecutar una macro en drive?… Gracias desde ya por el apoyo.
Me gustaMe gusta
¿Se refiere a las macros de Excel?
Me gustaMe gusta
Si, macros en Excel. Espero pueda ayudarme…gracias!
Me gustaMe gusta
Amigo muy interesante tu ejemplo.! Me recomendarias alguna pagina o blog para aprender a programar en apps script por favor. Estoy interesado en crear una secuencia de comandos que me permite copiar datos de una hoja de calculo en google, pasarlos a otra hoja del mismo documento y que se ordenen en funcion de un parametro por ejemplo fecha . Espero puedas ayudarme .Gracias.! Saludos.!
Me gustaMe gusta
Desgraciadamente no conozco ninguna pues soy autodidacta y por «deformación» profesional me apaño con la documentación de los frameworks o librerías.
La de Google Drive es especialmente buena y con bastantes ejemplos… te recomendaría empezar por ahí
Suerte y un saludo
Me gustaMe gusta
Buenas, lo he intentado hacer pero cuando he creado la secuencia, y la quiero usar dice que esto ha cambiado y que me vaya a complementos, desde el cual solo puedo instalar complementos que otros desarrolladores han hecho ¿qué tengo que hacer?
Me gustaMe gusta
Buenas tardes:
Actualmente soy usuario de Excel, me he interesado por los formularios y hojas de calculo de Google, es posible que los formularios interactuen con las hojas de calculo?, es posible que en los formularios se valide datos con base en una lista?, es decir seleccionar algun dato que este contenido en una lista, validar entradas de datos numericos, etc.
Me gustaMe gusta
Claro que sí; ambas cosas son posibles
Me gustaMe gusta
como puedo hacer una macro o algo que me genere una alerta para el vencimiento de contratos y me la mande a correo de gmail. ageradeceria mucho de tu ayuda.
Me gustaMe gusta
hola gracias por la información hice un formulario en drive me enlaza a una hoja de calculo de google docs instale flubaroo para «calificar» unas respuestas del formulario pero necesito solo enviar un correo cuando una de respuestas este mal, me podrías orientar como podría hacerlo
Me gustaMe gusta
Me encantaría pero no uso Flubaroo y, desgraciadamente, últimamente ando escaso de tiempo (me ha llamado la atención el programa y me gustaría dedicarle un rato gracias por enseñarme que existe)
Me gustaMe gusta
Hola! Util y alentador tu articulo, por un momento llegue a pensar que era imposible el crear una macro en google drive. Pero tengo una pequeña duda. Lo que pasa es que he estado trabajando directamente en un excel creando varias macros entorno a 3 hojas del mismo archivo que tienen como finalidad poder administrar de mejor manera inventarios, stocks y cosas por el estilo. Como ya llevo bien avanzado este tema empece a indagar en la posibilidad de subir estas macros a google drive. Pero no he encontrado una forma clara de hacerlo. ¿Sabes tu como podría realizarlo? o, por ultimo, ¿Donde se expllica claramente como «traspasar» macros desde excel a drive?
De antemano muchas gracias y saludos!
Me gustaMe gusta
Me alegra lo encuentre interesante Nicolás.
Desconozco si existe un conversor como el que necesita pero, como intuirá, el proceso no sería sencillo por lo que parece poco probable (si alguien conoce uno se agradecerá comentario).
Me gustaMe gusta
Hola
¿Podrías indicarme dónde pongo el rango de celdas a las que quiero aplicar el código?
Muchas gracias.
Un saludo
Me gustaMe gusta
Se aplica sobre la celda que tienes seleccionada en ese momento.
Salu2
Me gustaMe gusta
Buen día, quisiera saber si se puede hacer un comando, para que al modificar una hoja de texto en google docs, se tenga la opción de insertar objeto. Donde el objeto sea: cierto rango de celdas de una hoja de cálculo, y cuando lo requiera las pueda actualizar, y que no se eliminen las fórmulas que inserte en las celdas.
Ya que actualmente, traté de hacerlo, subiendo un archivo de word, ya con esas características, y las celdas que inserté me las convierte en imagen al abrirse el archivo en google docs.
De antemano agradezco su apoyo.
Me gustaMe gusta
Buen día,
Agradecería me digan si se puede hacer un comando para que pueda insertar un cierto rango de celdas de una hoja de cálculo a una hoja de texto en google docs.
Lo que quisiera es que se pudiese insertar cualquier objeto en la hoja de texto, como en el word, en este caso unas celdas que contienen fórmulas…
Les agradezco de antemano, saludos.
Me gustaMe gusta
Estimada Yazmín, ¿podría confirmarme que lo que pretende es incrustar una hoja de cálculo dentro de un documento de texto de modo que los datos de dicha hoja se muestren siempre actualizados en el documento?
Saludos
Me gustaMe gusta
Hola, disculpa por postear 2 veces, no me aparecía el comentario…y sí lo que quisiera es poder insertar en un documento de texto un cierto rango de celdas de una hoja de cálculo y que me respete las fórmulas que hay en ellas…en realidad requiero que al hacer clic en esas celdas me permita modificarlas ahí mismo en la hoja de texto…Igual a la opción que tiene el Word, de insertar objeto> a partir de un archivo existente…
Gracias!
Me gustaMe gusta
No te disculpes, no tenías por qué saber que el primer comentario estaba «moderado».
La funcionalidad que pides, como ya sabrás, no está incluida entre las opciones por defecto de Google Docs.
Actualmente desconozco si existe alguna extensión para contar con dicha posibilidad pero suena muy interesante.
Me anoto la duda para cuando pueda dedicarle un tiempo, siento no poder ofrecerte una solución inmediata.
Si descubres algo antes, estaremos encantados si los compartes con nosotros.
Suerte y un saludo
Me gustaMe gusta
Muchas gracias por tu tiempo, de cualquier forma ya hice la sugerencia a google drive.
Saludos.
Me gustaMe gusta
Ojalá haya suerte y pronto podamos disfrutar de esa funcionalidad 😉
Me gustaMe gusta