Se puede generar un Formulario personalizado con Google Apps Script. Actualmente trabajo con un formulario separado por categoría, según la respuesta indicada.
@@JuanSGuzman Hola, excelente tutorial. Muy útil. Ahora, se podrán enviar respuestas desde Sheets a Forms enviado cada dato de una celda al "entry del formulario" (algo parecido a enviar datos desde excel a google forms a través de la herramienta "winhttp.winhttprequest.5.1")?
@@davidalejandrofigueroapere2852 Hola David No conozco mucho del método de Excel, pero si estoy pensando en un video para llevar unos datos de Sheets a respuestas de Forms Saludos!
Hola Juan si te paras en el título de la pregunta puedes mover y cambiar el orden de las columnas para ordenarlas… así no importa si la agregas después, puedes ordenarlo como desees y las nuevas respuestas se colocarán en orden
Juan, desde hace unas semanas tu contenido es adicitivo para mi, he aprendido muchisimo con tus videos, los valoro y agradezco mucho tu esfuerzo invertido en este canal. Ahora mismo enfrento un gran problema y es que en mi empresa de E-commerce los pedidos son subidos en un google forms y desde ahí son procesados, con Funcion ImportRange y Querry los llevo directo a las bodegas de las diferentes ciudades para que sean despachados y tengo todo automatizado de esta manera El problema enorme llega cuando voy a facturar todo esto, ya que es un proceso muy manual, porque cuando un cliente lleva varios productos, me queda uno al lado del otro, ya que en el forms tengo varias opciones para que las comerciales seleccionen los productos pedidos por el cliente, entonces esto hace el proceso de facturación sumamente tedioso porque toca sacar esta tabla de manera manual y en el software contable seleccionar producto por producto. Hay alguna forma de colocarle una condición en donde le diga al forms que si se seleccionan varias opciones de productos el pueda crear varias filas, de esta manera sería como tener un archivo plano y simplemente copiar y pegar en el excel de siigo para facturar. Alguna recomendación para esto?
Aquí te recomiendo que hagas un webapp o uses AppSheet Aunque te demorarás un poco más programandolo (no es tan sencillo como Forms) te permite mas flexibilidad Con Forms no puedes hacer lo que me mencionas Saludos!
Hola, increíble contenido, solo una pregunta, como hago, con éste método, para registrar el correo con el que se registra cada respuesta como lo hace la conexión automática?
Hola Juan, me ayudo mucho tu video para crear un formulario de inscripciones para eventos y que estuviera vinculado a una hoja de sheets para poder gestionar los datos. Durante un año me ha ido muy bien y ahora de todas las respuestas (inscripciones) de un mismo evento, algunas quedan registradas en el Forms, pero no se han vinculado con Sheets, repito, solo algunas. ¿Sabes a que puede ser devido? Muchas gracias.
Hola Juan, en cuanto a creación de eventos masivos en 1 mes completo, me podrías ayudar como hacerlo general agrupando las celdas en uno solo ? gracias y muy prácticos tus videos instructivos !
Hola Juan, hace algún tiempo sigo sus tutoriales, le escribo por que en mi lugar de trabajo tengo una necesidad con el manejo de información en varios sheets y a medida que ha crecido me urge optimizar el movimiento y manejo de la misma, requiero una asesoría para evaluar opciones, claro esta, si usted presta este servicio o nos puede recomendar a alguien, básicamente es inventario, cotizaciones, y despacho de almacen para prestamos de herramientas y materiales
Hola Juan un gusto saludarte, tengo dudas cuando las preguntas del formulario google son largas, por ejemplo, Pregunta: "Indicar nombre y Apellido" como se declaran las const ???? porque en el ejemplo las preguntas son solo una palabra, gracias
Es posible hacer Desplegables Dependientes en google Forms que se comuniquen con Google Sheet , Por eje al escoger Continentes , poder Filtrar paises que pertenecen al continente
Excelente, muchas gracias por tus videos, son muy buenos, tengo una pregunta, si yo quiero evitar repetir un pedido, ósea lo que quiero es agregar una validación antes de guardar el registro en el Sheets, es ver que no exista la persona en ese listado, y reportarle al Forms, que ese cliente ya tiene un pedido activo, ahi forma de que el Sheet o el Script, le avise a Forms que no se pudo guardar esos datos?
Hola David En Forms no se puede Lo que si se podría hacer es que intente guardarlo, y si lo encuentra repetido no lo guarde, sino que lo actualice. Saludos!
Hola me sirve de mucho tu contenido, me gusta que eres super ordenado y eso ayuda a la hpra de aprender mil y mil gracias. Aun que tengo una duda hay manera de automatizar la formula para que cuando llenen un forms esta info se guarde en el sheed y delsheed pase de forma automatica al templet?
Te digo un secreto: en realidad soy super desordenado, jaja Pero a veces los astros se alinean y si planeo bien los videos, pareciera que si lo soy Gracias por las palabras igual Respecto a tu pregunta, si se podría. No lo he hecho pero si se puede Saludos!
Juan muchas gracias , excelente contenido. Me puedes por favor indicar, en el caso que tenga un formulario tipo cuestionario como conectaría la puntuación de cada cuestionario?, muchas gracias.
Hola, te agradezco, he aprendido mucho viendo tu contenido, tengo una pregunta, como puedo hacer, para que cada vez que cargue una pregunta ListItem() me deje el primer valor de la lista, como opción predeterminada? Agradezco de antemano!
Estoy recolectando informacion por medio de una cuadricula de varias opciones, con la instrucción const valores = valoraciones[1].getResponse(); consigo que todos los valores esten en una sola celda, ¿se pueden separar esas respuestas en columnas independientes?
Buen día Juan , espero se encuentre muy bien... Sus videos han sido muy útiles para la aplicación en procesos que hemos comenzado a implementar en mi empresa y me parece que son un HITTTT, no he tenido la oportunidad de ver y estudiar todos los tutoriales que tiene, pero se que de acuerdo a mis necesidades, encontraré videos que pueda incorporar y adaptar a mis procesos. En esta oportunidad le escribo por que tengo una duda respecto a la aplicación de este código, donde usd explica como Enviar respuestas de un formulario de Forms a Sheets con Google Apps Script. En un video anterior ya al finalizar usd trabajo con un Forms que tiene secciones y se le presenta el inconveniente que las respuestas se van agregando a Sheets en diferentes columnas y pues eso no es muy practico a la hora de enviar reportes o generar algún documento automático, por lo cual usd relaciona este video para solucionar ese inconveniente. En mi caso al tratar de almacenar los datos desde el formulario de Forms a Sheets no se están grabando y al revisar la ejecución desde Script me sale el mensaje de error "TypeError: Cannot read properties of undefined (reading 'getResponse') at grabarEnSheets(Código:19:32)" . Me gustaría saber si esto es debido a que en el Forms las respuestas de cada sección direccionan a una sección que tiene nueva información que esta relacionada solo para cada tipo de respuesta, pero que al fin de cuentas todas las respuestas se deberian almacenar en el Sheets en los campos q correspondan. Espero haya sido claro con la duda que tengo. Le pido disculpas si no es adecuado, pero le envío el código que tengo para ver si me puede decir cual es mi error. La verdad ya lo he revisado varias veces pero sigo igual... function grabarEnSheets(e) { //Conectarse con Sheets const libro = SpreadsheetApp.openById("1256kahjttZnigmbw6DYKMn_aRuAHZ8WPjGJcc6jzOoc") const hoja = libro.getSheetByName("Respuestas") //Traer respuestas const respuestaEnviada =e.response; const respuestas = respuestaEnviada.getItemResponses(); const fecha=respuestas[0].getResponse(); const consecutivo=respuestas[1].getResponse(); const mail=respuestas[2].getResponse(); const contratista=respuestas[3].getResponse(); const dirigidoA=respuestas[4].getResponse(); const direccion=respuestas[5].getResponse(); const ciudad=respuestas[6].getResponse(); const contrato=respuestas[7].getResponse(); const proyecto=respuestas[8].getResponse(); const asunto=respuestas[9].getResponse(); //Guardar respuestas en Sheets hoja.appendRow([fecha,consecutivo,mail,contratista,dirigidoA,direccion,ciudad,contrato,proyecto,asunto]) } function darPermisos(){ SpreadsheetApp.openById("1256kahjttZnigmbw6DYKMn_aRuAHZ8WPjGJcc6jzOoc") FormApp.getActiveForm(); } Nuevamente pido disculpas por el atrevimiento y espero me pueda guiar a una solución.
Hola! Ejecuta estos Loggers a ver que te sale //Traer respuestas const respuestaEnviada =e.response; Logger.log(respuestaEnviada) const respuestas = respuestaEnviada.getItemResponses(); Logger.log(respuestas) Saludos!
Muchas gracias @@JuanSGuzman, dando continuidad a su sugerencia, esto es lo que me sale al incluir los Logger.log: 26 oct 2023, 15:38:02 Información FormResponse 26 oct 2023, 15:38:02 Información [ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse] 26 oct 2023, 15:38:02 Error TypeError: Cannot read properties of undefined (reading 'getResponse') at grabarEnSheets(Código:20:34) Lo que intente adicional de agregar los Logger fue eliminar del Sheets las dos primeras columnas y modificar el código : const mail=respuestas[0].getResponse(); const contratista=respuestas[1].getResponse(); const dirigidoA=respuestas[2].getResponse(); const direccion=respuestas[3].getResponse(); const ciudad=respuestas[4].getResponse(); const contrato=respuestas[5].getResponse(); const proyecto=respuestas[6].getResponse(); const asunto=respuestas[7].getResponse(); con el fin de que unicamente me reconozca los campos iniciales que se recogen a partir del formulario de Forms, pero persiste el mismo error... Es como si no me reconociera el e.response, definitivamente no me trae la información desde el Forms a Sheets Atento a su sugerencia y muchas gracias...
@@javiermauriciocamargo8359 Yo creo que esto Creo q el problema esta aca const asunto=respuestas[7].getResponse(); El arreglo tiene 6 posiciones, no 7 Revisa Saludos!
Hola Juan! gran video :) una duda, en cuanto a la posicion, puedes elegir la fila dividiendo con coma para la posicion en y? tipo [0, 0] por ejemplo? Gracias!!
Gracias por compartir tus conocimientos, una consulta como podría hacer que a partir de un formulario me registre en automático la fecha y hora sin que el usuario tenga que colocarlo de forma manual? Espero puedas ayudarme. Exitos!
Hola! Pues por default la integración de Forms y Sheets te trae el timestamp. Si lo quieres hacer tu desde GAS tambien existe el método .getTimetamp para cada respuesta Sludos!
Que buen video Juan! Pero tengo una duda, y agradeceria su me puedes ayudar, como puedo guardar el mail de la persona que envió el formulario? en donde lo almacena forms para poder acceder a el! Gracias!
excelente tutorial es lo que necesitaba, una pregunta podria cambiar el formato de la fecha?mes decir que enlugar de salir mes/dia/ saliera dia/mes/año los necesito para subir conversiones a google ads. lo he editado en sheets pero no cambia el formto de fecha y hora, siempre me sale igual, y google ads me exige un orden especifico
HAs intentado usar formatos directamente en Sheets? Otra opción es usar la fúncion =TEXTO para aplicar el formato que quieras...para que no tengas que enredarte con código (aunque se podría) Saludos!
@@JuanSGuzman si intente cambiar el formato en sheet y no me dio. Viendo otro video tuyo logre extraer año, día, mes, hora, y después use la función concatenar en el orden que necsto, me funciono bien así, pero al copiar la formula del año en toda la columna me genera un error, estoy resolviendo ese pequeño detalle, gracias por tus aportes, son de origen natural mucho valor
Holaaa muchas gracias. Es posible que desde un formulario se envíen las respuestas a diferentes hojas de un libro Sheets, dependiendo de la primera pregunta del formulario y no tener que tener varios fomularios conectados a un mismo Sheets Ejemplo: Que la primera pregunta sea "Elija prenda de vestir" y las siguientes preguntas del mismo formulario, sean "Elija color", "Elija talla", etc. De esa forma, se vaya creando con cada envió del formulario, un sheet con hojas, "Polera", "Pantalon", "gorro" y en cada una de esas hojas, se rellenen las respuestas del formulario. Saludos!
Hola Juan, como siempre excelentes videos. Si fueras tan amable en responder, tengo esta duda. En mi caso si requiero la hora en que se envía el formulario, sin embargo no me aparece la hora local si no una hora anterior a la actual. Por otro lado qué debería usar si requiero además el email de la persona que envió el formulario?. Desde ya muchas gracias.
Muchas gracias nuevamente por el contenido de su canal. Quisiera saber si es posible que al llegar a la hoja de cálculo, los datos se ordenen de acuerdo a algún parámetro, por ejemplo en un formulario deben especificar la fecha de su cumpleaños y la idea es que tan pronto se diligencie cada formulario, Google Sheets ordene esta información en orden ascendente de acuerdo a esa fecha de cumpleaños, siendo las primeras las de enero y las últimas las de diciembre, por ejemplo.
Hola es un gusto saludarte, gracias por el aprendizaje que transmites, tengo una consulta si deseo que se llene por ejemplo la celda "c6" como puedo hacerlo es el video viene como [0], [1], [2]
Hola Marian Acuerdate que estamos trabajando con filas relativas Entonces cuando dices c6 te refieres a la columna 6 de un registro nuevo? En ese caso seria fila[5] Un gran saludo!
@@JuanSGuzman no, por ejemplo si quiero llenar en celdas especificas la información del formulario, es decir, hacer que las respuestas se graben en las celdas C6, B7, A1
@@marianlisethrodriguezbonil5265 Hola Marian. No tengo un video especifico de esa. Si tienes el caso específico lo evaluo para hacer un video. Un gran saludo!
Hola Juan. Seguí todo el video para poder hacer lo mismo y funcionó de maravilla, sólo que surgió el siguiente escenario: 2 personas que enviaron su formulario con 2 segundos de diferencia, obtuvieron el mismo ID. Lo puedo solucionar con un Utilities.sleep o cómo puedo solucionarlo?
Hola Marcos! Hmmmm...complejo Una posibilidad que se me ocurre es que se lleven a una hoja temporal, y una vez al día hagamos una "reorganización" y creación de los IDs, al final del día mediante un activador, por ejemplo, todos los días a las 12am No se, es una idea Saludos!
Hola Juan, espero puedas responder mi pregunta 😞, como puedo pasar las respuestas de mi Google form a una plantilla de Google docs y esa misma plantilla convertirlo a PDF, si me pudieras dar alguna sugerencia o saber si se puede realizar esto 🙌 por otro lado muchas gracias por tus tutoriales me han ayudado muchísimo.
Hola Juan, me preguntaba si es posible escoger a qué columnas del Sheets enviar las respuestas? Me refiero a que quiero hacer el Formulario en dos idiomas, pero no quiero tener tantas columnas, por lo que quiero enviar esas respuestas a la misma Columna, independientemente del idioma en que llenen el forms
@@JuanSGuzman Hola. No, todo sería el mismo formulario. Me refiero a si puedo escoger que dos preguntas diferentes en el mismo forms se depositen en la misma columna del sheets
Hola Sr. Juan. Muchas gracias por estos tutoriales. He implementado este código para hacer prácticas, pero una de mis preguntas del formulario es una cheklist, y esperando que me escribiera las casillas marcadas como un array de strings separados por comas en la celda de su columna correspondiente, me doy cuenta que lo que graba es esto "[Ljava.lang.Object;@" seguido de un id. ¿Sabría Ud. decirme cual es mi error?
Muy bueno Juan, Sin embargo, me gustaría saber ¿cómo hacer para que también salga el correo de la persona que llena el formulario?... en sheets me sale el correo automáticamente, pero con el Script, solamente recolecta la información de las preguntas, no de la información que se configura en el form, muchas gracias!!!
Hola Juan S Buitrago ( Yo so JS Guzman Buitrago, jaja) En vez de getResponses, hay metodos especificos para las variables de configuracion Prueba con esto Este es el del mail .getRespondentEmail() Este es el del timestamp getTimestamp() Saludos!
Buenísimo hermano, una pregunta, hay alguna manera de condicionar como el usuario puede llenar las respuestas en google forms? es decir, si por ejemplo quiero que el usuario solo escriba en mayúsculas o que empiece con J-, y cosas por el estilo. Muchas gracias por todo.
Hola Victor Claro que si Validaciones de datos. Hay algunos videos en el canal pero voy a ir subiendo mas pildoras de esto Aqui te dejo uno ua-cam.com/video/BN299Jachf8/v-deo.html Te quedo debiendo muchos mas porque hay muchisimas posibilidades! Un gran saludo!
Mi error era ejecutarlo desde script y tocaba llenar el formulario, Tengo otra pregunta no hay otra manera de traer la respuesta ya que tengo varias secciones en el formulario y necesito colocar las respuesta de una forma más específica. Por favor 🙏
Juan, muy buenos tus videos. Te hago una consulta. Es probable agregar una casilla de verificación para que algun usuario confirme un pedido que fue enviado por el forms?
Buena tarde: Juan en primer lugar quiero agradecer por tus aportes tus videos me han servido mucho. En mi caso mi forms es un cuestionario ¿Cómo puedo leer la nota o Score para agregarlos en la sheet? ¿se puede tanto para la nota final del formulario como para cada pregunta?
Hola Juan muchas gracias por tan magnifico trabajo, habrá algún método para recopilar automaticamente por código los correos de las personas que responden.?? Quedo atento.
amigo... hice como dijiste. Solo que cuando completan el formulario el formato de fecha va mm/dd/aaaa y me borro originalmente el horario en el que lo hacia.. se puede corregir el formato y por otro lado volver a que aparezca el horario?
Hola Juan, de antemano te agradezco por el tutorial excelente video, sin embargo, quiero preguntarte si es posible conectar por medio de AppScript un formulario que capte la información y que se envié a FireBase asignando un ID por cada Dato enviado?
Hola Jeferson Debe poderse Por ahora he investigado usar formularios para llevar los datos a Sheets Pero igualmente no debe ser tan complejo llevarlo a firebase o a Big Query Te lo debo para un futuro video Un gran saludo!
muy buen video explicativo, incluso para los programadores novatos. Una pregunta, se podría incluir una imagen en las respuestas enviadas?. Mil gracias!
Hola juan muy buen video , te quería consultar si hay alguna forma que en el google form a la hora de poner una respuesta duplicada le salte a la persona un cartel que diga que el dato ya existo o algo por el estilo . que no le deje enviar la respuesta? . porque tengo que hacer uno con Datos de DNI y no quiero que envíen Dni duplicados
@@JuanSGuzman Hola! En 1er lugar, muchas gracias por tus videos, me sirvieron un monton! En 2do lugar, esta el video disponible para esta situacion ya?
Hola Juan muy buen video, no creo que me tomes en cuenta pero quiero saber si desde google form ¿Puedo capturar un dato de un List Item? sin enviar la respuesta, me refiero a que el usuario seleccione ejemplo perro y, esto automáticamente se guarda en algún lado como el Onchage() de javascript, sin aun enviar el formulario, quizas se guarde en alguna variable dinamica no lo se. Saludos.
Hola Cristobal Me imagino que a lo que vas es a poder usar esta variable para hacer listas condicionales. Desafortunadamente hasta donde yo se, no se puede hacer en Forms, precisamente porque no hay activadores tipo onEdit o onChange Sigo investigando Un gran saludo!
21:40 Hola de nuevo Juan. Creo que aún no tienes en el canal un video donde coloques consecutivo con GAS pero cuando el formulario ya esta conectado con el sheets. ya que acá es el sheets quien se conecta al forms, o por lo menos eso entendí, ya que desde forms entraste al GAS. Si puede compartirnos el código te llevas 2 likes. Es simple: Cada vez que se recibe una respuesta del Forms, hacer la secuencia según la columna del Timestamp.
Hola Juan que pena tu tienes un video donde explique como enviar un formulario desde Sheets?? así como el que hiciste para enviar un adjunto PDF?. Te lo agradecería bastante.
@@JuanSGuzman Si señor, es para enviarlo exclusivamente a algunos destinatarios y pues también cuando respondan, guardar las respuestas. Muchas gracias.
Excelente!! feliciaciones muy buen video. Quisiera que me recomiende lo siguiente: Quiero elaborar un Google Form, donde reciba un numero ID "12345" Scaneado desde una pistola de cod de barras y este busque ese id en una tabla Personas, si lo encuentra que grabe un registro en Google Sheet el id, nombre, apellido, etc (Los campos que yo deseo y son parte del registro), Y notificar el registro(Campos deseados). Si no encuentra el id, que muestre el mensaje de "no existe ID"En Google Form. Es un poco loco el asunto, pero me interesa plantearlo. Si tuviera una idea para compartir, le agradezco!!!!
Hola Hector Excelente sugerencia! El tema es que Forms es un poco limitado cuando quieres hacer cosas un poco más complejas, por eso no creo que sea lo mas adecuado hacerlo con Forms Te recominendo hacerlo con formularios dentro de Sheets o con formularios HTML Un gran saludo!
Juan, te pasaste...esto andaba buscando y listo a la espera de vsr como se hace la actualización a traves del Link, se me viene a la cabeza como hacerlo, pero no conozco los comandos
Hola Alan Yo vi un código que hacia eso hace unos meses y me explotó la cabeza, jaja. Pero ya conociendo cosas como las que vemos en este video es más fácil Un gran saludo!
@@JuanSGuzman Juan, viendo por tercera vez tu video y se mw vi no a la cabeza, es posible realizar autorellenado en una form, imagina colocar el DNI o Carnet de un trabajador y en automático busque en una base de datos en sheets y rellene los campos del form en base a este DNI?
@@awperezsa8018 jaja justo voy tras esa respuesta xD llevo meses queriendo ver si se puede hacer algo así... por cierto, Juan en este video, obtiene el url de las respuestas enviadas desde un form, y desde ahi pueden editarse (es la opcion de form "Modificar respuesta después de enviada" algo asi) espero pueda servirte... por favor, me avisas si encuentras la respuesta a lo que buscas, me sería muy útil Este es el video que te digo: "Gestor de Contactos - Parte 2 - Como editar registros de Forms desde Sheets" ua-cam.com/video/JSjEp75zaNA/v-deo.html
@@ricardochicocabellos8887 ,si te refieres a usar el DNI para el autorellenado, ya pensé como podria solucionarlo, pero no de forma directa, pero te comparto la 💡 usar una macro en Excel con la base de datos que se auto rellena con el form, creo que hare un video y con el permiso de Juan usaré su Código del maestro kamus
@@awperezsa8018 una macro en google sheets dices? o el excel de escritorio.. no llegue comprender muy bn la idea , ojala me la puedas explicar o me avisas si llegas hacer el video q dices jaja
Juan buenos días, una duda: ¿podemos conectar a google sheets con google colap para hacer manipulaciones con python?, agradezco tu orientación, en caso de respuesta positiva, te pediría ayuda con alguna referencia en internet o documentación. Saludos.
Hola! Me estas hablando en chino! Jaja, no mentira si he oido hablar de Colap pero no lo manejo Te dejo una lista que seguro te ayudará Ojalá te sirva ua-cam.com/video/cN7W2EPM-dw/v-deo.html Saludos!
Muy buenos videos Juan, los he estado siguiendo por algún tiempo y estoy tratando de aplicarlos en mi trabajo. Tengo dos preguntas para hacerte: En un formulario ingreso la fecha de nacimiento pero al pasarla a sheets me sale aaaa-mm-dd. Cómo hago para que me quede dd-mm-aaaa
Muy buen video. Te felicito por el mismo. Sin embargo tengo una pregunta relacionada con forms y sheets. Cuando desde un sheets se envía a otro que es la hoja de respuestas de un forms, las enviadas desde sheets siempre se van a lo último bien sea con apendrow o con getlastrow y cuando se registra una nueva respuesta desde forms con fecha posterior está se registra arriba. Sabrías cómo solucionar para que queden organizadas con las que se envían desde appscripts?. Muchas gracias por tu ayuda
Hola Javier Pues una posible solución es que modifiques el código para que te lo agregue al principio La otra, es usar el código de este video para conectar el forms manualmente con el sheets y que siempre te lo vaya agregando abajo Un gran saludo!
Hola Juan S Guzman todo iba bien hasta que decidí formular directamente desde sheets, en ese momento se dejaron de llegar las respuestas a Google sheets
Hola Juan, en verdad bravazo el video, solo tengo un problema cuando declaro mi: "const respuestaEnviada = e.response;" y después lo quiero correr me sale un error, nose en que estoy haciendo mal
@@JuanSGuzman eres un bravo, con tu pregunta, me diste la respuesta, eres lo máximo, muchas gracias. Lo estaba ejecutando en el editor, pero como este tenia el tigger de cuando se manda el frormulario, este me salia error.
Hola! Perdón que pregunte en este video. Juan te quiero hacer una consulta respecto a los formatos de moneda. El sistema con el que trabajo descarga Excel con formato con coma para los centavos. Y yo siempre uso punto. Cómo Cambio el Formato para que quede todo igual? Lo hice desde formato número etc y no lo cambia. El sistema usa por ej $20234,33 Yo uso $29234.33 Quisiera unificarlo para volcar en una planilla de sheets que tengo pero No logro cambiarlo siempre queda la coma. Gracias saludos Yanel
Tienes razón, puede ser un gran dolor de cabeza También me ha pasado Podemos hacer un script que haga el reemplazo, o una función personalizada Saludos!
Hola! Gracias por el video!! Te cuento que al ejecutar el grabarEnSheets me aparece el siguiente error: Error TypeError: Cannot read properties of undefined (reading 'response') grabarEnSheets @ Código.gs:8 Entiendo que el problema está en la definicion de la function grabarEnSheets(e) {...} ya que no está reconociendo el argumento e, y por ende luego no reconoce la instrucción de la constante const respuestaEnviada = e.response; Me ayudas por favor. Gracias
Hola Juan, estoy generando un formulario conectado con certify'em para generar diplomas de cursos a los colaboradores de la empresa, pero quiero el formulario valide antes al momento de ingresar la cedula que se encuentre dentro de mi base de datos del personal activo, para poder expedirlo. De lo contrario no genere ningun certificado. Me puedes ayudar?
Consulta... quede pegado en response ya que al ejecutar el registro me dice undefined (reading 'response'), he buscado un remplazo pero no lo encuentro, alguna sugerencia ??
Configure el código sin problemas, me ayudo bastante, pero como puedo reflejar las respuesta en mi hoja de calculos cuando dentro de mi formulario tengo una "cuadricula de opciones múltiples"?, ya que en la hoja de calculo me lo muestra de la siguiente forma: [Ljava.lang.Object;@5fbad3e6
Hmmmm Me tocaría revisar esa pregunta específica, ya que parece que esta no es un arreglo sino un objeto y habría que extraerlo de manera diferente Voy a investigarlo Saludos!
Buen día, mirando vídeo en 2022 Marzo, a la hora de buscar la fuente del evento (Creando activador), no aparece la opción "De un formulario" Minuto 11:00, alguien quizás le pasó lo mismo?, como puedo solucionarlo?
Hola Juan S! Muchisimas gracias por todo el valor que aportas! He logrado enviar las respuestas de mi formulario a sheets con apps Script, pero tengo un problema con la pregunta del formulario que es tipo Check Box (la que se puede elegir varias opciones), en la tabla se graba cosas como "[Ljava.lang.Object;@431f3b31" , quería saber que agregar al código para que en las respuestas salgan las opciones que elijan separadas de comas. Espero me puedas ayudar Juan Sebastian!
Hola! Cuando son varias respuestas te trae un arreglo Tienes que incluir un código que una las respuestas. Vuelveme a escribir la otra semana, y te busco un código que tengo por ahí archivado donde lo hice Saludos!
@@JuanSGuzman ..muy buena su video, me fue de mucha utilidad pero, de la misma forma me aparecio el error [Ljava.lang.Object;@431f3b31" entonces lo hice con setValues () todo va bien hasta las preguntas de seleccion multiple solo me muestra la primera respuesta y las demas no existe en mi sheet porque saldria ese error ? espero no confundirlo de antemano agradecesco su coloboracion
Buenas gente, os quería hacer una preguntita ¿Alguien podría decirme cómo hacer que una respuesta en un form sustituya un valor de una celda concreta en vez de añadir como información nueva? Mil gracias y buen día!
Una forma de resolver el tema de las preguntas y el orden es hacer un formulario nuevo e importar las preguntas del formulario. Asi quedan las respuestas en la hoja de calculo con el orden del formulario y no de creación
Saludo. Excelente contenido. Este script no me quiere funcionar. El codigo, creo que lo tengo tal cual al del video: function conectaconform(e) { const respuestasUs =e.response; const respuestas =respuestasUs.getItemResponses(); respuestas.forEach(respuesta=>{ Logger.log(respuesta.getResponse()); }) } El activador (e), es cuando el formulario se abre. Y el resultado de la ejecución: 20:18:50 Error TypeError: Cannot read property 'response' of undefined conectaconform @ Código.gs:3 Gracias por compartir el conocimiento, por el tiempo y ojalá por la colaboración. 👀🙏
Hola Juan me he cansado de buscar el metodo que me capture la opcion (multiple) seleccionada para que en base a ello en el sgte seccion me muestre ciertos valores. Pero no logro encontrar, apoyame por favor. Pense que iba a ser algo asi: var pregunta1= formulario.getItemById("1039099434"); //1039099434 Id de la pregunta1 Logger.log(pregunta1.asMultipleChoiceItem().getSelectedItem()) //pero getSelectedItem() no existe.
Nos queda faltando poder editar las respuestas ya enviadas directamente en Forms ¿Alguna otra sugerencia?
Se puede generar un Formulario personalizado con Google Apps Script. Actualmente trabajo con un formulario separado por categoría, según la respuesta indicada.
@@Maudioch Hola Christian
Si se puede
Lo que no he podido es hacer el tutorial, con tantos en fila, jaja
Esta en mis pendientes!
Saludos!
@@JuanSGuzman Hola, excelente tutorial. Muy útil. Ahora, se podrán enviar respuestas desde Sheets a Forms enviado cada dato de una celda al "entry del formulario" (algo parecido a enviar datos desde excel a google forms a través de la herramienta "winhttp.winhttprequest.5.1")?
@@davidalejandrofigueroapere2852 Hola David
No conozco mucho del método de Excel, pero si estoy pensando en un video para llevar unos datos de Sheets a respuestas de Forms
Saludos!
Si pudiste hacer el video para editar las respuestas ya enviadas?
Hola Juan si te paras en el título de la pregunta puedes mover y cambiar el orden de las columnas para ordenarlas… así no importa si la agregas después, puedes ordenarlo como desees y las nuevas respuestas se colocarán en orden
Hola!
Que gran aporte!
No lo sabía
Saludos!
Juan, no te imagínas cuanto me han servido tus videos, éste en especial ha sido espectacular. Muchas Muchas Muchas Gracias!!!!!!
Hola!
Que amables palabras! Mil gracias!
Saludos!
Muchas gracias por el esfuerzo. Sus informaciones son sumamente útiles
Hola!
Que amables palabras! Mil gracias!
Saludos!
Juan, desde hace unas semanas tu contenido es adicitivo para mi, he aprendido muchisimo con tus videos, los valoro y agradezco mucho tu esfuerzo invertido en este canal.
Ahora mismo enfrento un gran problema y es que en mi empresa de E-commerce los pedidos son subidos en un google forms y desde ahí son procesados, con Funcion ImportRange y Querry los llevo directo a las bodegas de las diferentes ciudades para que sean despachados y tengo todo automatizado de esta manera
El problema enorme llega cuando voy a facturar todo esto, ya que es un proceso muy manual, porque cuando un cliente lleva varios productos, me queda uno al lado del otro, ya que en el forms tengo varias opciones para que las comerciales seleccionen los productos pedidos por el cliente, entonces esto hace el proceso de facturación sumamente tedioso porque toca sacar esta tabla de manera manual y en el software contable seleccionar producto por producto.
Hay alguna forma de colocarle una condición en donde le diga al forms que si se seleccionan varias opciones de productos el pueda crear varias filas, de esta manera sería como tener un archivo plano y simplemente copiar y pegar en el excel de siigo para facturar. Alguna recomendación para esto?
Aquí te recomiendo que hagas un webapp o uses AppSheet
Aunque te demorarás un poco más programandolo (no es tan sencillo como Forms) te permite mas flexibilidad
Con Forms no puedes hacer lo que me mencionas
Saludos!
Hola, increíble contenido, solo una pregunta, como hago, con éste método, para registrar el correo con el que se registra cada respuesta como lo hace la conexión automática?
response tiene un metodo
creo que es
e.response.getRespondantEmail()
O algo por ese estilo
Saludos!
Hola Juan, me ayudo mucho tu video para crear un formulario de inscripciones para eventos y que estuviera vinculado a una hoja de sheets para poder gestionar los datos. Durante un año me ha ido muy bien y ahora de todas las respuestas (inscripciones) de un mismo evento, algunas quedan registradas en el Forms, pero no se han vinculado con Sheets, repito, solo algunas.
¿Sabes a que puede ser devido?
Muchas gracias.
Hola!
Raro
Podría ser que a veces se tratan de llenar dos formularios exactamente al mismo tiempo?
Saludos!
Hola Juan, en cuanto a creación de eventos masivos en 1 mes completo, me podrías ayudar como hacerlo general agrupando las celdas en uno solo ? gracias y muy prácticos tus videos instructivos !
Hola!
A que te refieres con "agrupar las celdas en uno solo"
Quedo pendiente
Saludos!
Hola Juan, hace algún tiempo sigo sus tutoriales, le escribo por que en mi lugar de trabajo tengo una necesidad con el manejo de información en varios sheets y a medida que ha crecido me urge optimizar el movimiento y manejo de la misma, requiero una asesoría para evaluar opciones, claro esta, si usted presta este servicio o nos puede recomendar a alguien, básicamente es inventario, cotizaciones, y despacho de almacen para prestamos de herramientas y materiales
Hola Daniel
Escribeme a sebastian@juansguzman.com
Saludos!
Hola Juan un gusto saludarte, tengo dudas cuando las preguntas del formulario google son largas, por ejemplo, Pregunta: "Indicar nombre y Apellido" como se declaran las const ???? porque en el ejemplo las preguntas son solo una palabra, gracias
Hola Mariela
Puedes poner nombreYApellido o nombre_y_apellido
Saludos!
@@JuanSGuzman genial Juan muy amable en contestar lo voy a intentar así como dices y te comento 😊
Es posible hacer Desplegables Dependientes en google Forms que se comuniquen con Google Sheet , Por eje al escoger Continentes , poder Filtrar paises que pertenecen al continente
Excelente, muchas gracias por tus videos, son muy buenos, tengo una pregunta, si yo quiero evitar repetir un pedido, ósea lo que quiero es agregar una validación antes de guardar el registro en el Sheets, es ver que no exista la persona en ese listado, y reportarle al Forms, que ese cliente ya tiene un pedido activo, ahi forma de que el Sheet o el Script, le avise a Forms que no se pudo guardar esos datos?
Hola David
En Forms no se puede
Lo que si se podría hacer es que intente guardarlo, y si lo encuentra repetido no lo guarde, sino que lo actualice.
Saludos!
Hola me sirve de mucho tu contenido, me gusta que eres super ordenado y eso ayuda a la hpra de aprender mil y mil gracias.
Aun que tengo una duda hay manera de automatizar la formula para que cuando llenen un forms esta info se guarde en el sheed y delsheed pase de forma automatica al templet?
Te digo un secreto: en realidad soy super desordenado, jaja
Pero a veces los astros se alinean y si planeo bien los videos, pareciera que si lo soy
Gracias por las palabras igual
Respecto a tu pregunta, si se podría. No lo he hecho pero si se puede
Saludos!
@@JuanSGuzman hahahaha bueno pues no parece jijijijiji voy a inventar entonces!
Muy buen aporte, estuve esperando largo tiempo este tema tan valioso.
Hola Jimmy
Mil gracias por tus palabras!
Un gran saludo!
Excelente! De gran ayuda para los amateurs y administradores! Gracias!
Juan muchas gracias , excelente contenido. Me puedes por favor indicar, en el caso que tenga un formulario tipo cuestionario como conectaría la puntuación de cada cuestionario?, muchas gracias.
Hola Gustavo
Interesante sugerencia!
Déjame lo investigo para hacer un video
Un gran saludo!
@@JuanSGuzman Hola Juan, has tenido el espacio de revisar la consulta que te mencione, te agradezco mucho. saludos.
Hola Juan, continuo interesado en la consulta que te había realizado, muchas gracias.
Hola, te agradezco, he aprendido mucho viendo tu contenido, tengo una pregunta, como puedo hacer, para que cada vez que cargue una pregunta ListItem() me deje el primer valor de la lista, como opción predeterminada?
Agradezco de antemano!
Estoy recolectando informacion por medio de una cuadricula de varias opciones, con la instrucción const valores = valoraciones[1].getResponse(); consigo que todos los valores esten en una sola celda, ¿se pueden separar esas respuestas en columnas independientes?
Buen día Juan , espero se encuentre muy bien... Sus videos han sido muy útiles para la aplicación en procesos que hemos comenzado a implementar en mi empresa y me parece que son un HITTTT, no he tenido la oportunidad de ver y estudiar todos los tutoriales que tiene, pero se que de acuerdo a mis necesidades, encontraré videos que pueda incorporar y adaptar a mis procesos.
En esta oportunidad le escribo por que tengo una duda respecto a la aplicación de este código, donde usd explica como Enviar respuestas de un formulario de Forms a Sheets con Google Apps Script. En un video anterior ya al finalizar usd trabajo con un Forms que tiene secciones y se le presenta el inconveniente que las respuestas se van agregando a Sheets en diferentes columnas y pues eso no es muy practico a la hora de enviar reportes o generar algún documento automático, por lo cual usd relaciona este video para solucionar ese inconveniente. En mi caso al tratar de almacenar los datos desde el formulario de Forms a Sheets no se están grabando y al revisar la ejecución desde Script me sale el mensaje de error "TypeError: Cannot read properties of undefined (reading 'getResponse') at grabarEnSheets(Código:19:32)" . Me gustaría saber si esto es debido a que en el Forms las respuestas de cada sección direccionan a una sección que tiene nueva información que esta relacionada solo para cada tipo de respuesta, pero que al fin de cuentas todas las respuestas se deberian almacenar en el Sheets en los campos q correspondan. Espero haya sido claro con la duda que tengo.
Le pido disculpas si no es adecuado, pero le envío el código que tengo para ver si me puede decir cual es mi error. La verdad ya lo he revisado varias veces pero sigo igual...
function grabarEnSheets(e) {
//Conectarse con Sheets
const libro = SpreadsheetApp.openById("1256kahjttZnigmbw6DYKMn_aRuAHZ8WPjGJcc6jzOoc")
const hoja = libro.getSheetByName("Respuestas")
//Traer respuestas
const respuestaEnviada =e.response;
const respuestas = respuestaEnviada.getItemResponses();
const fecha=respuestas[0].getResponse();
const consecutivo=respuestas[1].getResponse();
const mail=respuestas[2].getResponse();
const contratista=respuestas[3].getResponse();
const dirigidoA=respuestas[4].getResponse();
const direccion=respuestas[5].getResponse();
const ciudad=respuestas[6].getResponse();
const contrato=respuestas[7].getResponse();
const proyecto=respuestas[8].getResponse();
const asunto=respuestas[9].getResponse();
//Guardar respuestas en Sheets
hoja.appendRow([fecha,consecutivo,mail,contratista,dirigidoA,direccion,ciudad,contrato,proyecto,asunto])
}
function darPermisos(){
SpreadsheetApp.openById("1256kahjttZnigmbw6DYKMn_aRuAHZ8WPjGJcc6jzOoc")
FormApp.getActiveForm();
}
Nuevamente pido disculpas por el atrevimiento y espero me pueda guiar a una solución.
Hola!
Ejecuta estos Loggers a ver que te sale
//Traer respuestas
const respuestaEnviada =e.response;
Logger.log(respuestaEnviada)
const respuestas = respuestaEnviada.getItemResponses();
Logger.log(respuestas)
Saludos!
Muchas gracias @@JuanSGuzman, dando continuidad a su sugerencia, esto es lo que me sale al incluir los Logger.log:
26 oct 2023, 15:38:02 Información FormResponse
26 oct 2023, 15:38:02 Información [ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse]
26 oct 2023, 15:38:02 Error TypeError: Cannot read properties of undefined (reading 'getResponse')
at grabarEnSheets(Código:20:34)
Lo que intente adicional de agregar los Logger fue eliminar del Sheets las dos primeras columnas y modificar el código :
const mail=respuestas[0].getResponse();
const contratista=respuestas[1].getResponse();
const dirigidoA=respuestas[2].getResponse();
const direccion=respuestas[3].getResponse();
const ciudad=respuestas[4].getResponse();
const contrato=respuestas[5].getResponse();
const proyecto=respuestas[6].getResponse();
const asunto=respuestas[7].getResponse();
con el fin de que unicamente me reconozca los campos iniciales que se recogen a partir del formulario de Forms, pero persiste el mismo error...
Es como si no me reconociera el e.response, definitivamente no me trae la información desde el Forms a Sheets
Atento a su sugerencia y muchas gracias...
@@javiermauriciocamargo8359 Yo creo que esto
Creo q el problema esta aca
const asunto=respuestas[7].getResponse();
El arreglo tiene 6 posiciones, no 7
Revisa
Saludos!
Hola Juan! gran video :) una duda, en cuanto a la posicion, puedes elegir la fila dividiendo con coma para la posicion en y? tipo [0, 0] por ejemplo? Gracias!!
Hola!
A que parte del video te refieres
Saludos!
@@JuanSGuzman en el min 13:26 cuando declaras las columnas y sus posiciones
@@jg_reveles La pregunta tiene que ver con preguntas de opción múltiple, donde puedes escoger más de una respuesta?
Saludos!
Gracias por compartir tus conocimientos, una consulta como podría hacer que a partir de un formulario me registre en automático la fecha y hora sin que el usuario tenga que colocarlo de forma manual?
Espero puedas ayudarme. Exitos!
Hola!
Pues por default la integración de Forms y Sheets te trae el timestamp. Si lo quieres hacer tu desde GAS tambien existe el método .getTimetamp para cada respuesta
Sludos!
Que buen video Juan! Pero tengo una duda, y agradeceria su me puedes ayudar, como puedo guardar el mail de la persona que envió el formulario? en donde lo almacena forms para poder acceder a el! Gracias!
HOla!
Depende
Si lo estas pidiendo, lo puedes tomar del campo
Pero si no lo pides, Google no sabe
Saludos!
excelente tutorial es lo que necesitaba, una pregunta podria cambiar el formato de la fecha?mes decir que enlugar de salir mes/dia/ saliera dia/mes/año los necesito para subir conversiones a google ads. lo he editado en sheets pero no cambia el formto de fecha y hora, siempre me sale igual, y google ads me exige un orden especifico
HAs intentado usar formatos directamente en Sheets?
Otra opción es usar la fúncion =TEXTO para aplicar el formato que quieras...para que no tengas que enredarte con código (aunque se podría)
Saludos!
@@JuanSGuzman si intente cambiar el formato en sheet y no me dio. Viendo otro video tuyo logre extraer año, día, mes, hora, y después use la función concatenar en el orden que necsto, me funciono bien así, pero al copiar la formula del año en toda la columna me genera un error, estoy resolviendo ese pequeño detalle, gracias por tus aportes, son de origen natural mucho valor
@@afyasociados ME avisas si lo consigues
Saludos!
@@JuanSGuzman si lo logre, con u video tuyo, extrayendo día, año, por separado, luego concatenando, y copiando la formula con un Array. Gracias
@@afyasociados Excelente! Felicitaciones!
Holaaa muchas gracias. Es posible que desde un formulario se envíen las respuestas a diferentes hojas de un libro Sheets, dependiendo de la primera pregunta del formulario y no tener que tener varios fomularios conectados a un mismo Sheets
Ejemplo: Que la primera pregunta sea "Elija prenda de vestir" y las siguientes preguntas del mismo formulario, sean "Elija color", "Elija talla", etc. De esa forma, se vaya creando con cada envió del formulario, un sheet con hojas, "Polera", "Pantalon", "gorro" y en cada una de esas hojas, se rellenen las respuestas del formulario.
Saludos!
Hola Juan, como siempre excelentes videos. Si fueras tan amable en responder, tengo esta duda. En mi caso si requiero la hora en que se envía el formulario, sin embargo no me aparece la hora local si no una hora anterior a la actual. Por otro lado qué debería usar si requiero además el email de la persona que envió el formulario?. Desde ya muchas gracias.
Ya pude solucionarlo al ver tu respuesta en comentarios más abajo, gracias!
Excelente!
Muchas gracias nuevamente por el contenido de su canal.
Quisiera saber si es posible que al llegar a la hoja de cálculo, los datos se ordenen de acuerdo a algún parámetro, por ejemplo en un formulario deben especificar la fecha de su cumpleaños y la idea es que tan pronto se diligencie cada formulario, Google Sheets ordene esta información en orden ascendente de acuerdo a esa fecha de cumpleaños, siendo las primeras las de enero y las últimas las de diciembre, por ejemplo.
Hola!
Claro que si!
Te muestro un video donde lo hago.
ua-cam.com/video/Wko1-ywLyVI/v-deo.html
Sería unir este código con ese
Saludos!
Hola es un gusto saludarte, gracias por el aprendizaje que transmites, tengo una consulta si deseo que se llene por ejemplo la celda "c6" como puedo hacerlo es el video viene como [0], [1], [2]
Hola Marian
Acuerdate que estamos trabajando con filas relativas
Entonces cuando dices c6 te refieres a la columna 6 de un registro nuevo?
En ese caso seria fila[5]
Un gran saludo!
@@JuanSGuzman no, por ejemplo si quiero llenar en celdas especificas la información del formulario, es decir, hacer que las respuestas se graben en las celdas C6, B7, A1
@@marianlisethrodriguezbonil5265 Ahh, mas facil aun
hoja.getRange('C6').setValue(fecha)
Saludos!
@@JuanSGuzman Por casualidad ¿tienes un video relacionado a lo que te estoy preguntando?
@@marianlisethrodriguezbonil5265 Hola Marian. No tengo un video especifico de esa. Si tienes el caso específico lo evaluo para hacer un video.
Un gran saludo!
Hola Juan.
Seguí todo el video para poder hacer lo mismo y funcionó de maravilla, sólo que surgió el siguiente escenario:
2 personas que enviaron su formulario con 2 segundos de diferencia, obtuvieron el mismo ID. Lo puedo solucionar con un Utilities.sleep o cómo puedo solucionarlo?
Hola Marcos!
Hmmmm...complejo
Una posibilidad que se me ocurre es que se lleven a una hoja temporal, y una vez al día hagamos una "reorganización" y creación de los IDs, al final del día mediante un activador, por ejemplo, todos los días a las 12am
No se, es una idea
Saludos!
Hola Juan, espero puedas responder mi pregunta 😞, como puedo pasar las respuestas de mi Google form a una plantilla de Google docs y esa misma plantilla convertirlo a PDF, si me pudieras dar alguna sugerencia o saber si se puede realizar esto 🙌 por otro lado muchas gracias por tus tutoriales me han ayudado muchísimo.
Se puede con KNIME
Hola Fernando
Algo como esto?
ua-cam.com/video/Cd9THVICJqs/v-deo.html
Saludos!
Hola Juan, me preguntaba si es posible escoger a qué columnas del Sheets enviar las respuestas? Me refiero a que quiero hacer el
Formulario en dos idiomas, pero no quiero tener tantas columnas, por lo que quiero enviar esas respuestas a la misma Columna, independientemente del idioma en que llenen el forms
Hola!
Te refieres a tener 2 formularios que alimenten el mismo forms??
Saludos!
@@JuanSGuzman Hola. No, todo sería el mismo formulario. Me refiero a si puedo escoger que dos preguntas diferentes en el mismo forms se depositen en la misma columna del sheets
@@leonardoalba3861 No hay problema
Simplemente haz un condicional, para que si una no tiene nada, ponga la otra
Saludos!
Hola Sr. Juan. Muchas gracias por estos tutoriales. He implementado este código para hacer prácticas, pero una de mis preguntas del formulario es una cheklist, y esperando que me escribiera las casillas marcadas como un array de strings separados por comas en la celda de su columna correspondiente, me doy cuenta que lo que graba es esto "[Ljava.lang.Object;@" seguido de un id. ¿Sabría Ud. decirme cual es mi error?
Hola amigo, tengo el mismo problema, pudiste dar con la solución... Si si, me podrías ayudar gracias
Muy bueno Juan, Sin embargo, me gustaría saber ¿cómo hacer para que también salga el correo de la persona que llena el formulario?... en sheets me sale el correo automáticamente, pero con el Script, solamente recolecta la información de las preguntas, no de la información que se configura en el form, muchas gracias!!!
Hola Juan S Buitrago ( Yo so JS Guzman Buitrago, jaja)
En vez de getResponses, hay metodos especificos para las variables de configuracion
Prueba con esto
Este es el del mail .getRespondentEmail()
Este es el del timestamp getTimestamp()
Saludos!
Buenísimo hermano, una pregunta, hay alguna manera de condicionar como el usuario puede llenar las respuestas en google forms? es decir, si por ejemplo quiero que el usuario solo escriba en mayúsculas o que empiece con J-, y cosas por el estilo. Muchas gracias por todo.
Hola Victor
Claro que si
Validaciones de datos. Hay algunos videos en el canal pero voy a ir subiendo mas pildoras de esto
Aqui te dejo uno
ua-cam.com/video/BN299Jachf8/v-deo.html
Te quedo debiendo muchos mas porque hay muchisimas posibilidades!
Un gran saludo!
Muy buenas sus clases 👍 ¿una pregunta no me lee response que estaré haciendo mal ?
Hola Fernando
Que te sale en el logger log
Un gran saludo!
Mi error era ejecutarlo desde script y tocaba llenar el formulario, Tengo otra pregunta no hay otra manera de traer la respuesta ya que tengo varias secciones en el formulario y necesito colocar las respuesta de una forma más específica. Por favor 🙏
@@fernandoculma640 Hola Fernando. Pudiste solucionar?
Saludos!
Juan, muy buenos tus videos. Te hago una consulta. Es probable agregar una casilla de verificación para que algun usuario confirme un pedido que fue enviado por el forms?
Hola!
Claro que si. Me imagino que te refieres a ponerlo en el sheets
Saludos!
@@JuanSGuzman exactamente
excelente video, como podria extraer un archivo pdf que adjunten por el form?
Hola
Aquí te dejo un video donde lo hago
Saludos!
Buena tarde:
Juan en primer lugar quiero agradecer por tus aportes tus videos me han servido mucho.
En mi caso mi forms es un cuestionario ¿Cómo puedo leer la nota o Score para agregarlos en la sheet? ¿se puede tanto para la nota final del formulario como para cada pregunta?
Hola Marco
Mil gracias por tus palabras!
Aunque nunca lo he hecho, si se que se puede
Te lo debo para un próximo video
Un gran saludo!
Hola Juan muchas gracias por tan magnifico trabajo, habrá algún método para recopilar automaticamente por código los correos de las personas que responden.?? Quedo atento.
Hola Saul
No eres la primera persona que me hace esa pregunta
Se que no es tan facil pero que si se puede
Espero poder responderles pronto
Saludos!
amigo... hice como dijiste. Solo que cuando completan el formulario el formato de fecha va mm/dd/aaaa y me borro originalmente el horario en el que lo hacia.. se puede corregir el formato y por otro lado volver a que aparezca el horario?
Hola Juan, de antemano te agradezco por el tutorial excelente video, sin embargo, quiero preguntarte si es posible conectar por medio de AppScript un formulario que capte la información y que se envié a FireBase asignando un ID por cada Dato enviado?
Hola Jeferson
Debe poderse
Por ahora he investigado usar formularios para llevar los datos a Sheets
Pero igualmente no debe ser tan complejo llevarlo a firebase o a Big Query
Te lo debo para un futuro video
Un gran saludo!
muy buen video explicativo, incluso para los programadores novatos. Una pregunta, se podría incluir una imagen en las respuestas enviadas?. Mil gracias!
Hola ALberto
Mil gracias por tus palabras!
Yo creo q se puede
Pero necesita un poco más de integración con Google Drive y eso
Un gran saludo!
Me gustaría que hicieras lo del cambio
Muy pronto!
Hola, como harían para registrar cada dia en una hoja diferente? Me inquieta esa duda gracias
Hola!
LAs hojas ya estan creadas, o las crearias?
Saludos
Como habilitaste el Menu Formularios en google sheets? No me sale esa opcion y por consiguiente no puedo ver la opcion de Formularios condicionales
Hola juan muy buen video , te quería consultar si hay alguna forma que en el google form a la hora de poner una respuesta duplicada le salte a la persona un cartel que diga que el dato ya existo o algo por el estilo . que no le deje enviar la respuesta? . porque tengo que hacer uno con Datos de DNI y no quiero que envíen Dni duplicados
Si señor.
Preciso hace poco lo hice con un estudiante
Te lo debo para un próximo video
Saludos!
@@JuanSGuzman Hola! En 1er lugar, muchas gracias por tus videos, me sirvieron un monton! En 2do lugar, esta el video disponible para esta situacion ya?
@@ConstanzaMarañon Aun no, pero pronto soluciono
Saludos!
Hola Juan muy buen video, no creo que me tomes en cuenta pero quiero saber si desde google form ¿Puedo capturar un dato de un List Item? sin enviar la respuesta, me refiero a que el usuario seleccione ejemplo perro y, esto automáticamente se guarda en algún lado como el Onchage() de javascript, sin aun enviar el formulario, quizas se guarde en alguna variable dinamica no lo se. Saludos.
Hola Cristobal
Me imagino que a lo que vas es a poder usar esta variable para hacer listas condicionales.
Desafortunadamente hasta donde yo se, no se puede hacer en Forms, precisamente porque no hay activadores tipo onEdit o onChange
Sigo investigando
Un gran saludo!
@@JuanSGuzman ok muchas gracias por responder Saludos!
@@cristobalmosso7945 Saludos!
21:40 Hola de nuevo Juan. Creo que aún no tienes en el canal un video donde coloques consecutivo con GAS pero cuando el formulario ya esta conectado con el sheets. ya que acá es el sheets quien se conecta al forms, o por lo menos eso entendí, ya que desde forms entraste al GAS. Si puede compartirnos el código te llevas 2 likes.
Es simple: Cada vez que se recibe una respuesta del Forms, hacer la secuencia según la columna del Timestamp.
Buena sugerencia. Ya lo tengo anotado para otro video. Saludos!
Hola Juan que pena tu tienes un video donde explique como enviar un formulario desde Sheets?? así como el que hiciste para enviar un adjunto PDF?. Te lo agradecería bastante.
Hola!
Me detallas porfa un poco más lo que deseas hacer?
Saludos!
@@JuanSGuzman Holaa claro que si, es mas o menos desde google sheets a traves de la función GmailApp; envié el formulario.
@@bermudezsalcedobermudezsal7789 solo enviarlo por mail? no guardarlo? Saludos!
@@JuanSGuzman Si señor, es para enviarlo exclusivamente a algunos destinatarios y pues también cuando respondan, guardar las respuestas. Muchas gracias.
@@bermudezsalcedobermudezsal7789 Lo de la respuesta es más complicado. Posible pero más difícil
Saludos!
Excelente!! feliciaciones muy buen video. Quisiera que me recomiende lo siguiente: Quiero elaborar un Google Form, donde reciba un numero ID "12345" Scaneado desde una pistola de cod de barras y este busque ese id en una tabla Personas, si lo encuentra que grabe un registro en Google Sheet el id, nombre, apellido, etc (Los campos que yo deseo y son parte del registro), Y notificar el registro(Campos deseados). Si no encuentra el id, que muestre el mensaje de "no existe ID"En Google Form. Es un poco loco el asunto, pero me interesa plantearlo. Si tuviera una idea para compartir, le agradezco!!!!
Hola Hector
Excelente sugerencia!
El tema es que Forms es un poco limitado cuando quieres hacer cosas un poco más complejas, por eso no creo que sea lo mas adecuado hacerlo con Forms
Te recominendo hacerlo con formularios dentro de Sheets o con formularios HTML
Un gran saludo!
Juan, te pasaste...esto andaba buscando y listo a la espera de vsr como se hace la actualización a traves del Link, se me viene a la cabeza como hacerlo, pero no conozco los comandos
Hola Alan
Yo vi un código que hacia eso hace unos meses y me explotó la cabeza, jaja. Pero ya conociendo cosas como las que vemos en este video es más fácil
Un gran saludo!
@@JuanSGuzman Juan, viendo por tercera vez tu video y se mw vi no a la cabeza, es posible realizar autorellenado en una form, imagina colocar el DNI o Carnet de un trabajador y en automático busque en una base de datos en sheets y rellene los campos del form en base a este DNI?
@@awperezsa8018 jaja justo voy tras esa respuesta xD llevo meses queriendo ver si se puede hacer algo así... por cierto, Juan en este video, obtiene el url de las respuestas enviadas desde un form, y desde ahi pueden editarse (es la opcion de form "Modificar respuesta después de enviada" algo asi) espero pueda servirte... por favor, me avisas si encuentras la respuesta a lo que buscas, me sería muy útil
Este es el video que te digo: "Gestor de Contactos - Parte 2 - Como editar registros de Forms desde Sheets"
ua-cam.com/video/JSjEp75zaNA/v-deo.html
@@ricardochicocabellos8887 ,si te refieres a usar el DNI para el autorellenado, ya pensé como podria solucionarlo, pero no de forma directa, pero te comparto la 💡 usar una macro en Excel con la base de datos que se auto rellena con el form, creo que hare un video y con el permiso de Juan usaré su Código del maestro kamus
@@awperezsa8018 una macro en google sheets dices? o el excel de escritorio.. no llegue comprender muy bn la idea , ojala me la puedas explicar o me avisas si llegas hacer el video q dices jaja
Juan buenos días, una duda: ¿podemos conectar a google sheets con google colap para hacer manipulaciones con python?, agradezco tu orientación, en caso de respuesta positiva, te pediría ayuda con alguna referencia en internet o documentación. Saludos.
Hola!
Me estas hablando en chino! Jaja, no mentira si he oido hablar de Colap pero no lo manejo
Te dejo una lista que seguro te ayudará
Ojalá te sirva
ua-cam.com/video/cN7W2EPM-dw/v-deo.html
Saludos!
@@JuanSGuzman Igualmente gracias!!!
@@pedrorubiano2291 Ojalá algun día maneje esas herramientas. Saludos!
@@JuanSGuzman Con todo el manejo que ya tienes, si lo exploras seguro lo dominas super rápido. Saludos!!
@@pedrorubiano2291 Mil gracias por la confianza
Espero hacerlo!
Muy buenos videos Juan, los he estado siguiendo por algún tiempo y estoy tratando de aplicarlos en mi trabajo.
Tengo dos preguntas para hacerte:
En un formulario ingreso la fecha de nacimiento pero al pasarla a sheets me sale aaaa-mm-dd. Cómo hago para que me quede dd-mm-aaaa
Hola
Mil gracias por tus palabras
Puedes usar un formato en Sheets, y se cambia
Intenta y me cuentas
Muy buen video. Te felicito por el mismo. Sin embargo tengo una pregunta relacionada con forms y sheets. Cuando desde un sheets se envía a otro que es la hoja de respuestas de un forms, las enviadas desde sheets siempre se van a lo último bien sea con apendrow o con getlastrow y cuando se registra una nueva respuesta desde forms con fecha posterior está se registra arriba. Sabrías cómo solucionar para que queden organizadas con las que se envían desde appscripts?. Muchas gracias por tu ayuda
Hola Javier
Pues una posible solución es que modifiques el código para que te lo agregue al principio
La otra, es usar el código de este video para conectar el forms manualmente con el sheets y que siempre te lo vaya agregando abajo
Un gran saludo!
@@JuanSGuzman voy a tratar de conectarlos a ver cómo me va. Como siempre Juan sos el mejor del mundo mundial. Saludos
@@javiera.palaciosc1515 Me vas contando Javier
Un gran saludo!
Hola Juan S Guzman todo iba bien hasta que decidí formular directamente desde sheets, en ese momento se dejaron de llegar las respuestas a Google sheets
Hola!
Exactamente que formulaste?
Algun ArrayFormula, por ahi?
Saludos!
Excelente video!! :)
Gracias!
Hola Juan, en verdad bravazo el video, solo tengo un problema cuando declaro mi: "const respuestaEnviada = e.response;" y después lo quiero correr me sale un error, nose en que estoy haciendo mal
Hola Alan
Mil gracias por tus palabras!
Lo estas corriendo desde el editor? o enviando un formulario?
Saludos!
@@JuanSGuzman eres un bravo, con tu pregunta, me diste la respuesta, eres lo máximo, muchas gracias.
Lo estaba ejecutando en el editor, pero como este tenia el tigger de cuando se manda el frormulario, este me salia error.
@@awperezsa8018 Excelente!
Hola! Perdón que pregunte en este video.
Juan te quiero hacer una consulta respecto a los formatos de moneda. El sistema con el que trabajo descarga Excel con formato con coma para los centavos. Y yo siempre uso punto. Cómo
Cambio el
Formato para que quede todo igual? Lo hice desde formato número etc y no lo cambia.
El sistema usa por ej $20234,33
Yo uso $29234.33
Quisiera unificarlo para volcar en una planilla de sheets que tengo pero
No logro cambiarlo siempre queda la coma.
Gracias saludos
Yanel
Tienes razón, puede ser un gran dolor de cabeza
También me ha pasado
Podemos hacer un script que haga el reemplazo, o una función personalizada
Saludos!
Hola! Gracias por el video!! Te cuento que al ejecutar el grabarEnSheets me aparece el siguiente error:
Error
TypeError: Cannot read properties of undefined (reading 'response')
grabarEnSheets @ Código.gs:8
Entiendo que el problema está en la definicion de la function grabarEnSheets(e) {...} ya que no está reconociendo el argumento e, y por ende luego no reconoce la instrucción de la constante const respuestaEnviada = e.response;
Me ayudas por favor. Gracias
Exactamente
Recuerda que no lo puedes ejecutar desde el editor sino "en vivo" al enviar un formulario
Saludos!
Hola Juan, estoy generando un formulario conectado con certify'em para generar diplomas de cursos a los colaboradores de la empresa, pero quiero el formulario valide antes al momento de ingresar la cedula que se encuentre dentro de mi base de datos del personal activo, para poder expedirlo. De lo contrario no genere ningun certificado. Me puedes ayudar?
Hola!
Este video en conjunto con este otro que te dejo a continuación te pueden dar la idea
ua-cam.com/video/JSjEp75zaNA/v-deo.html
Saludos!
Consulta... quede pegado en response ya que al ejecutar el registro me dice undefined (reading 'response'), he buscado un remplazo pero no lo encuentro, alguna sugerencia ??
Hola Daniel
Ten cuidado si lo estas ejecutando directamente desde el editor
Saludos!
@@JuanSGuzman Gracias Juan.. ya la pille.. era tan obvio que se me pasó .. muchas gracias por tus vídeos tan didácticos.. 👍
Configure el código sin problemas, me ayudo bastante, pero como puedo reflejar las respuesta en mi hoja de calculos cuando dentro de mi formulario tengo una "cuadricula de opciones múltiples"?, ya que en la hoja de calculo me lo muestra de la siguiente forma: [Ljava.lang.Object;@5fbad3e6
Hmmmm
Me tocaría revisar esa pregunta específica, ya que parece que esta no es un arreglo sino un objeto y habría que extraerlo de manera diferente
Voy a investigarlo
Saludos!
@@JuanSGuzman Mismo problema :( se ha podido resolver?
@@lizbethgutierrezlopez4638 Debe salir un video pronto. Saludos!
Buen día, mirando vídeo en 2022 Marzo, a la hora de buscar la fuente del evento (Creando activador), no aparece la opción "De un formulario" Minuto 11:00, alguien quizás le pasó lo mismo?, como puedo solucionarlo?
Hola Juan, me sale error: e.response; me indica que "TypeError: Cannot read property 'response' of undefined"
Hola! Eso pasa xq solo t va a funcionar cuando envias el formulario
Hola Juan S! Muchisimas gracias por todo el valor que aportas!
He logrado enviar las respuestas de mi formulario a sheets con apps Script, pero tengo un problema con la pregunta del formulario que es tipo Check Box (la que se puede elegir varias opciones), en la tabla se graba cosas como "[Ljava.lang.Object;@431f3b31" , quería saber que agregar al código para que en las respuestas salgan las opciones que elijan separadas de comas. Espero me puedas ayudar Juan Sebastian!
Hola!
Cuando son varias respuestas te trae un arreglo
Tienes que incluir un código que una las respuestas.
Vuelveme a escribir la otra semana, y te busco un código que tengo por ahí archivado donde lo hice
Saludos!
@@JuanSGuzman ..muy buena su video, me fue de mucha utilidad pero, de la misma forma me aparecio el error [Ljava.lang.Object;@431f3b31"
entonces lo hice con setValues () todo va bien hasta las preguntas de seleccion multiple solo me muestra la primera respuesta y las demas no existe en mi sheet porque saldria ese error ?
espero no confundirlo
de antemano agradecesco su coloboracion
@@micaelafloreschoque6590 Pero entonces ya no te aparee el error?
@@JuanSGuzman ya noo
Lo solucione todo..
@@micaelafloreschoque6590 Excelente!
WAOOO si necesito saber como se hace la actualización del formulario
Hola Harold
YA queda anotado para la próxima parte
Un gran saludo!
Buenas gente, os quería hacer una preguntita ¿Alguien podría decirme cómo hacer que una respuesta en un form sustituya un valor de una celda concreta en vez de añadir como información nueva? Mil gracias y buen día!
Hola Ruben
Te dejo este tutorial que de pronto te da ideas
ua-cam.com/video/c0Frn0PIcHk/v-deo.html
Saludos!
Una forma de resolver el tema de las preguntas y el orden es hacer un formulario nuevo e importar las preguntas del formulario. Asi quedan las respuestas en la hoja de calculo con el orden del formulario y no de creación
Buen aporte Lionel
Mil gracias!
Saludos!
El enlace del vídeo donde explica lo de los eventos por favor, 8:32
Me sale este error:
Error
TypeError: Cannot read property 'response' of undefined
Hola! Tienes razón, nunca lo puse. Es este: ua-cam.com/video/wzqCe6qXC6A/v-deo.html
Saludos!
Saludo.
Excelente contenido.
Este script no me quiere funcionar.
El codigo, creo que lo tengo tal cual al del video:
function conectaconform(e) {
const respuestasUs =e.response;
const respuestas =respuestasUs.getItemResponses();
respuestas.forEach(respuesta=>{
Logger.log(respuesta.getResponse());
})
}
El activador (e), es cuando el formulario se abre.
Y el resultado de la ejecución:
20:18:50 Error
TypeError: Cannot read property 'response' of undefined
conectaconform @ Código.gs:3
Gracias por compartir el conocimiento, por el tiempo y ojalá por la colaboración. 👀🙏
Recuerda que no te va a funcionar si lo ejecutas desde el editor
Saludos!
5:52 Para esta marca temporal yo aplique estos pasos que explicas con Macro y GAS: ua-cam.com/video/vkWnBEw7F3w/v-deo.html
Gracias por compartir!
Saludos!
Hola Juan me he cansado de buscar el metodo que me capture la opcion (multiple) seleccionada para que en base a ello en el sgte seccion me muestre ciertos valores. Pero no logro encontrar, apoyame por favor. Pense que iba a ser algo asi:
var pregunta1= formulario.getItemById("1039099434");
//1039099434 Id de la pregunta1
Logger.log(pregunta1.asMultipleChoiceItem().getSelectedItem()) //pero getSelectedItem() no existe.
Hola!
Es bien copmlejo
He estado preparando un video sobre eso...Espero tenerlo en algunas semanas
Saludos!