Podríamos mejorar esto de varias maneras: Por un lado podríamos hacer plantillas más "bonitas" o completas en HTML. Por otro lado, podríamos tener varias plantillas y poder escoger a cual podemos enviar. ¿Más sugerencias?
Hola Juan , justo busco algo similar , nose si podrias ayudarme , me envían correos constante donde me piden que le escane un documento para esto me envian los datos como nombre, numero de ficha , paciente , motivo y la fecha y hora , luego esa info la tengo que descargar a un excel . Gracias a tu video ya no sera necesario descargar la info porque lo hara automático, pero quisiera que enves de que diga "Te enviamos un mail" , que envie los datos mencionados para que quede en el correo , como seria el codigo alli ??
Estimado Juan: Estoy siguiendo sus tutoriales. Le consulto cómo puedo hacer para juntar este código + el que realizó para responder con un texto más completo + un adjunto que tenga para cada cliente sin usar plantilla (porque las imágenes son muy diferentes de un cliente a otro) Agradecería enormemente me pueda guiar. Saludos desde Argentina!!!!
Buenas tardes Juan, quiero hacer lo mismo pero no en una hoja activa, sino en la hoja de cálculo de resultados que genera un Formulario de Google. Me funciona perfecto si modifico la variable programada directamente en la hoja, pero no se activa enviar el mail cuando el el formulario alimenta la hoja de cálculo. Será que debo sustituir el SpreadsheetApp.getCurrentCell() Saludos desde Chile!
Hola Juan, muchas gracias por compartir tus conocimientos, son de gran valor. podrias ayudarmecon algo... necesito saber como hago si esa casilla de verificacion pertenece a otra hoja de calculo de google sheets, porque cuando en la otra hoja de calculo verifican la casilla en la hoja de calculo donde tengo mi scripp no se envia el correo, solo lo permite si esta en la misma hoja y lo necesito tomando la informacion desde otro archivo. es posible hacer esto?
¡Hombre, qué chimba lo que hace! Dios lo bendiga mucho, lo siga colmando de conocimiento & ganas de colaborar. Sus videos me han sido de mucha ayuda, incluso lo siento más profesor que los propios profesores de mi carrera. Me gustaría mostrarle el proyecto que hice cuál niño de primaria orgulloso de lo que hizo jajaja. ¡ÉXITOS!
¡Muchas gracias! Una duda, si quiero tomar en cuenta 5 columnas en lugar de 1, ¿cómo puedo ajustar la condición? Quiero hacer un proceso que en cuanto se marque la casilla de verificación del paso 1 (por ejemplo) se mande un correo de actualización y así con los pasos 2, 3, 4 y 5
Hola! Puedes cambiar la condición a algo así if(nHojaDatos==nHojaActiva && filaActiva > filasEncabezado && (colActiva == col1 || colActiva == col2) && valorActivo==valorCondicion) Y tener las variables col1,col2 y cuantas mas quieras. Hay métodos mas eficientes, pero ese te debe funcionar Saludos!
¡¡¡APORTACIÓN!!!!: Hola comunidad, Probé a poner "✔️" en vez de "Enviado" en el EstadoEnvio y funcionó!! Ahora mi tabla es mucho más visual. Se podría aplicar a cualquier tipo de señales. La verdad que no sabía que app script soportara emojis, es genial. Saludos Juan!
buen video. la celda que dice enviado garantiza q se envio correctamente? hay alguna forma de obtener una respuesta del envio para saber q se envio correctamente. gracias.
Hola! Excelente pregunta! En principio, que el comando este despues de la linea de envío nos asegura que se ejecutó la linea correctamente. Si hubiera un error no pasaria a la siguiente Hay un metodo llamado try con el que podriamos ir más alla y "atrapar" los errores, si llega a haberlos a la hora de enviar Saludos!
Hola Juan. Gracias por estas increibles herramientas. Pero, tengo una consulta: si la hoja de calculo es compartida y otro usuario la modifica, el email se envía desde el propietario de la hoja. Que comando deberia añadir para que el email se envíe desde quien edita la hoja? Saludos y graciaas!!!
Hola Juan he aprendido mucho con tus videos me gustaría tener una asesoría personal tengo varios códigos pero me faltan cositas jejeje quedo pendiente de tu tiempo y el costo. muchas gracias
hola muchas gracias por estos videos !!! una consulta, luego que una persona competa un forms y ese dato llega a un sheets, puedo programar que se le envíe cada 2 semanas un correo recordatorio automatizado, es decir, sin que yo ingrese a google sheets que el correo salga solo por el hecho de cumplirse 14 dias del ultimo envío?
Hola Juan , agradecerte por tu videos son excepcionales y ayudan un monto. hice el código tal cual el video pero no me toma la condición de envió que seria "SI", que podrá ser ? saludos
Hola! Revisa q que te este tomando el valor que quieres Puedes revisar con un Logger.log(que si te trae el "SI". Revisa mayúsculas y minúsculas Saludos!
@@JuanSGuzman hola Juan disculpa que te moleste de nuevo, pero intente con el logger.log y no me traer nada, me dice que espere que no arroja datos, inserte un botón en la plantilla para asignarle la función de envío, y si pongo "SI"(que es el valor que quiero dar para que envíe el correo)en la columna de la condición y presiono el botón lo envía; pero al no tener el "SI" no lo hace . Espero que me puedas entender y orientarme saludos!
Estimado Juan: Me funciona muy bien el código siempre y cuando esté parada en la celda, pero si estoy situada en otra hoja, cómo cambiar para que lo entienda? Agradecería orientación
Buenas Juan, estupendo video, me ha dado luz para realizar una automatización para una tienda online. Estaba pensando en que me mandaran un mail cuando el precio cambie, es decir, automaticamente tengo los precios del proveedor, y me gustaría que automáticamente me mandara un mail si el precio del proveedor cambia. Como tengo automaticamente el feed de datos con la tienda online, no quiero que cuando ellos cambie el dinero, que no me sea rentable, con lo que tendría que revisar precios antes de subir los precios. ¿podrías realizar un video donde automáticamente mandara un mail si el precio de un producto cambiara?, Saludos :)
Hola excelente video! Yo quisiera preguntarte si sabes si se pueden hacer ciclos, como "for" o "do while", o si tienes ya algún vídeo? O como se utilizan en este código de macros?
Hola Juan; muchas gracias por tus videos, estoy aprendiendo un montón cosas por implementar. Tengo una consulta, tengo una hoja compartida con más de 10 usuarios, quisiera que me notifique por correo solo cuando se llena una columna (por ejemplo: Columna B) o solo cuando dos usuarios hacen cambios; esto debido a que si los 10 hacen cambios, estarían llegando notificaciones a cada momento. Es esto factible? Muchas gracias :)
hola juan te hago una consuta, nose si ya la respondiste o no, no lo encontre. arme la plantilla y envia bien el correo, pero solo lo hace cuando escribo la palabra en la celda. pero cuando cambia la celda automaticamente por alguna formula. no envia el correo. ( yo arme esta plantilla para que me envie el correo si en una celda especifica cambia por que llego a la fecha de vencimiento, pero no sale el correo, solo sale si escribo en esa celda. por que podra ser?
Hola Santiago Muy buena pregunta Lo que pasa es que Sheets no considera los cambios en fórmulas como "cambios" que activen el onEdit(); Una posibilidad es poner un activador de tiempo que corra cada 5 minutos Aquí te dejo un video th-cam.com/video/lrQQrOA_uKw/w-d-xo.html Un gran saludo!
Bárbaro.. consulta si yo creo mi código y lo agrego a biblioteca como puedo hacer para usarlo. Porq quiero proteger mi código para que no lo vean o modifiquen
Hola Juan, se puede automatizar el envio de correos por fecha?, por ejemplo, tengo una base de datos en google sheet, y una de sus columnas son Fechas de Vencimiento. Entonces, realizar un algoritmo que compare la fecha de vencimiento con la fecha actual de hoy , y si esta es menor a 7 dias, enviar de forma automatica un correo de alerta. Pero enviarlo de forma automatica, sin estar revisando el archivo de forma constante. Gracias
¡Hola Juan! Qué excelentes tus videos. Una consulta, ¿sabes cómo hacer para que el texto no se corte cuento se sobrepase los 76 caracteres en una oración en el cuerpo del mensaje ? Se ve mal cuando envío el mensaje. Gracias de antemano.
@@JuanSGuzman Sí, en textos largos se cortaban las oraciones. Gracias por la sugerencia. Buscando logré solucionarlo. Lo envié en fomato html, y en cada párrafo le puse para los saltos de línea. Lo otro que quería consultarte es cómo poner la firma. para cada correo, por favor.
@@cristianbancayannavarro3415 Excelente que hayas solucionado! Lo más fácil es incluirla en el HTML, pero voy a ver si hay alguna forma automática Saludos!
@@JuanSGuzman intento así, pero uno de los correos lo tengo ya en una variable, que extraigo de una celda. Y no logro incluir en el campo de destinatario que le acepte tanto la variable como otros correos, que meto directo y son fijos
@@edilbertoserrano8472 Intenta asi var correoQueYaTraes; var otrosCorreos="juanito@gmail.com,pedrito@gmail.com" var destinatarios=correoQueYaTraes+","+otrosCorreos GmailApp.sendEmail(destinatarios Saludos!
Hola. Primero que nada quiero agradecer por los videos. Son excelentes y muy buenos explicando. Me han servido demasiado. Tengo una duda para saber si me podrías ayudar: en uno de tus videos muestras como enviar correos utilizando un código que detecta la modificación de un valor en una casilla y envía el correo automáticamente. Mi duda es ¿habría posibilidad de modificar ese código para poder configurarlo para que el envío sea cuando se registre un formulario nuevo? Mi archivo de sheet esta conectado a un formulario de google forms, por lo que cada vez que hay una respuesta nuevo, se captura automáticamente. Mi intención es enviar un correo electrónico cada vez que haya un registro nuevo. Espero tu respuesta y te agradezco de nuevo todo el contenido que haz creado.
@@JuanSGuzman Gracias por la respuesta! Espero que ese vídeo llegue rápido. Será de gran ayuda para un proyecto que me encuentro trabajando. Muchas gracias de nuevo por la respuesta y por todos tus videos de excelente calidad y utilidad!
Muy bueno!!!! me ayudo mucho actualmente envio email a proveedores por google sheets ; Una pregunta existe alguna herramienta que permite enviar mensajes múltiples al Whatsapp algún API...muchas gracias
Hola Juan, Estoy empezando en este mundillo de Google Sheets y me he visto muchos videos tuyos. Ahora estoy investigando para hacer que los datos que los clientes nos envian al Gmail se me copien en una fila nueva dentro de Google Sheets. No encuentro mucha info, podrías indicarme algo al respecto? Muchas gracias de antemano
Hola! Tengo pendiente ese video Tienes que conectarte con Gmail. Lo más fácil para que no te toque buscar en todos los correos es primero hacver un filtro en Gmail para que te etiquete los correos y usar esa etiqueta como una condicion en Sheets para que te los "grabe" Saludos!
Hola Juan, gracias por todos tus vídeos, me han sido de gran utilidad , una gran duda uno de mis sheets esta conectada a un form para que se llene automático y ligué mi código de envío de correos masivos al activador de ejecutar cada que ocurre un cambio, el tema es que unos datos en mi sheets los tengo para que se complementen con un ArrayFormula y cada que se ejecuta el activador estos datos se dañan, lo cambie a solo formula quitando el ARRAY (que es un simple BUSCARV ) y también cada que se ejecuta el activador me borra estas formulas, todo lo pone en valores y cada que me llega un nuevo registro no envia mi mail porque se dañan las formulas :( espero me entiendas y me puedas ayudar, saludos desde México
@@JuanSGuzman Gracias por contestar Juan, donde se borra la info es donde tengo las formulas de buscarv/array formula (estos datos no vienen del form, son datos que complementan los datos que me llegan del form y uno de ellos es el mail al que se enviara el correo y este lo obtengo con un buscarv) y toda la info la tengo en la misma pestaña, la info del form es de la columna 1 a la 13, y la info del correo con buscarv esta en columna 14
@@dianajanetpelaezhernandez1299 Hola Diana Una posibilidad para que pruebes, es que abras otra hoja Dejes separadas la del form y la otra de las formulas en esa de las formulas traes la info de la de forms con un query o un {} y seguido a esto pones las formulas ME cuentas Un gran saludo!
@@JuanSGuzman Hola Juan! ya intente de estas 2 formas que me sugieres peeeero ya vi que las formulas se ponen en valores cuando ejecuto mi botón de envió masivo de correos, cuando envío un mail no pasa nada , entonces el problema no es el activador es en el envío masivo :(
@@dianajanetpelaezhernandez1299 Tienes razón! Es algo que me di cuenta despues con alguien que me comentó. Aqui te va el cambio cambia la parte de contactos.forEach por esta (con tus datos, obvio contactos.forEach(function(fila,indiceFila){ if(fila[colColfirmacion-1]!="Correo Enviado"){ //Logger.log(fila[56],); var mensaje1 = crearMensaje1 (fila); GmailApp.sendEmail(fila[56],"Pago fallido, Maihue Chile. Actualiza tus datos de cobro" ,mensaje1); hoja.getRange(indiceFila+3,colColfirmacion).setValue("Correo Enviado"); hoja.getRange(indiceFila+3,colFecha).setValue(new Date()); cont++ } }) Me cuentas si te sirve Saludos!
Hola Juan, Excelentes tus videos y explicaciones. Se aprende muchísimo! Consulta: he puesto en práctica este código, pero aparentemente solo funciona si el usuario edita y cambia el valor de la celda. En mi caso, es una función la que cambia el valor del resultado en la celda, pero no la fórmula en si, cuestión que aparentemente eso no es tomado por la rutina del script como un cambio en la celda y por lo tanto no se envía el mail. Podrías ayudarme con esto o tienes un video al respecto? Muchas Gracias!
Hola Mil gracias por tus palabras! Te dejo un video que hice para la academia, donde hago algo similar y uso activadores de tiempo drive.google.com/file/d/19QpOVM4jbl7S3bf2zfb79NdYH5FzPEpP/view?usp=sharing Un gran saludo!
@@JuanSGuzman Hola Juan Buenos días, primero que todo agradecerte por los videos son excelente, segundo, estoy tratando de implementar este código pero al igual es una formula la que hace el cambio del archivo y al parecer asi no funciona, tienes algún video en el que me puedas ayudar a como hacerlo?
Hola! Todavía no he hecho un video de esto. Aquí te dejo uno que hice exclusivo para los alumnos de la academia. Ojalá te sirva. Saludos! Te lo paso mientras hago el video en el canal drive.google.com/file/d/19QpOVM4jbl7S3bf2zfb79NdYH5FzPEpP/view?usp=sharing Saludos!
Me refuncionooo profeee! estuve 3 días intentando y ahora en dos horas ya me salió. Este era mi último video por ver! buenísima la explicación Profe. Los trigger lo que me doy cuenta que la mayoría que explica se olvida de decir cual actualizar! Graciaaas Profeee idolo!
Gracias por los aportes son excelentes, mas cuando vamos iniciando a utilizar estas herramientas. Una duda me da un error que indica " Exception: Selecciona una hoja activa primero. (línea 7, archivo "Código") " ojala puedas ayudarme. Gracias y Bendiciones
@@JuanSGuzman Muchas gracias. Estuve checando el código y esta correcto, funciona cuando edito manualmente esa columna seleccionada (como en tu ejemplo columna 7), pero si en el activador cambio de opción en "seleccionar el tipo de evento" la opción "al editarse" la cambio a " al producirse un cambio" aquí es cuando me arroja este error de scrip : Función Mensaje de error Activación EnvioMail Exception: Selecciona una hoja activa primero. change
@@selenecat1676 Te voy a ser sincero. No he entendido bien la diferencia entre "al editar" y "al producir un cambio". Siempre escojo "editar". Pero voy a investigar mejor Un gran saludo!
@@selenecat1676 Excelente! Lo hiciste con onEdit? Buenisimo. Lastima no te pude dirigir inmediatamente al video adecuado. A veces me enredo con tantos videos. Lo importante es que solucionaste. Un gran saludo!
Hola buenas tardes excelente video amigo, disculpa y para que en lugar del check o la palabra verdadero, como podria ponerle para que sea cualquier valor en mi caso son numeros de telefono., intente ponerle "mayor que 1" pero no me lo corre asi me podrias ayudar porfavor Gracias
Buenos dias! La verdad és que me estan sirviendo mucho tus vídeos! Muchas gracias! Ahora mismo estoy trabajando con un google sheet para tener controlado el material de alquiler que tenemos en mi entidad. Des de un formulario de google, recojo los parametros de nombre de la entidad que hace el pedido de alquiler, el material deportivo que vendrà a recoger, i cuantos packs. Esto me genera un QR con toda la informacion de esa reserva. Ahora lo que quiero es que este Qr se envie de manera automatica a la persona que me lo ha enviado, para que cuando venga a buscar el material, yo solo tenga que leerle el QR i de esta manera ya me ponga que ese material esta . Seguidamente, me gustaria que con la segunda lectura del mismo QR, pudiera poner que esta . De momento tengo el QR con los datos de la reserva i cuando lo leo me pone , pero no he conseguido enviarlo automatico, i tengo que hacerlo a mano... Crees que tiene solucion?
Hola Juan ! Que tal? Querría saber si dicha fórmula funciona si el cambio de celda es automático. Yo lo querría utilizar para que me notifique en el correo fechas vencidas de un inventario. Si no valiese está formula, ¿Tiene un vídeo donde lo expliques? Un saludo. Cómo siempre, enhorabuena!
Hola! No lo he hecho aun Te dejo un video que hice para la academia donde hago algo similar a lo que quieres drive.google.com/file/d/19QpOVM4jbl7S3bf2zfb79NdYH5FzPEpP/view?usp=sharing Saludos!
Tengo una macro pero por algún motivo dejó de funcionar. Tengo el código, en realidad son dos: uno numletra y otro más para generar el PDF. La verdad es que no sé nada de programación. Apenas empezaré a estudiar el tema, pero me gustaría saber si me puedes apoyar a indicarme como hacer para que sea funcional en un nuevo archivo. Quedo atento a tu respuesta.
Hola Juan, ahora que Google está apostando fuerte por Workspace, ¿crees que se podría enviar un mensaje via Chat algún miembro de la organización o alguna Sala? Muchas gracias
Hola Juan una pregunta, si necesito valorar varias columnas y no solo una como podría modificar el código? He intentado añadiendo un "-" desde la columna inicial hasta la columna final, algo así: const colCondicion = 11-69 pero no me envía las notificaciones
Hola! Tienes que hacer condición por condición separándola con ||. Algo así colCondición1=11 colCondición2=12 Y después If(col==colCondicion1 || col==colCondicion2) Obviamente esta no está forma más eficiente. Aquí te dejo un video que no tiene que ver con envío de correos pero te va a servir y lo puedes aplicar Saludos!
Lo primero agradecer el trabajo! Tengo casi listo el script pero no quiero usar 'celdaActiva' para hacer el 'setvalue ("enviado")', sino una celda en concreto, por ejemplo la 'AQ3'. No consigo crear ese código y debería ser sencillo, no?
Nada, lo conseguí! Después de un par de días de aprendizaje acelerado he conseguido que envíe el email cuando el stock baja de cierta cantidad (te hice la consulta en tu blog y me indicaste amablemente que esperara a este vídeo, con el que por fin he logrado ese control de stock). Muchas gracias!
Juan buenas tardes una consulta, como podría aplicar esta funcionalidad y que le llegue a los destinatarios sin saber el remitente (Que llegue como "no reply") gracias
Hola, quiero hacer algo parecido. Deseo copiar a otra hoja los valores escritos en la columna A, B, C y D al marcar la casilla de verificación de la correspondiente fila. Como podría realizarlo?
Hola Guido Hola Aquí te dejo algunos videos donde lo hago th-cam.com/video/zefkA3J0XB4/w-d-xo.html th-cam.com/video/wWEKbOBDxgg/w-d-xo.html th-cam.com/video/1qW5d7IAFBQ/w-d-xo.html Saludos!
Juan, antes que nada, gracias por tu valiosísimo aporte con tus tutoriales. Estoy teniendo un error, y es el siguiente: function () { [native code] } at enviarMailInstantaneo(Código:18:13) El código está escrito igual que el tuyo, tenés alguna idea de que puede llegar a ser? Gracias!
Buenas tardes Juan, muchas gracias por compartir estos videos,. Me han ayudado bastante. Tengo una duda, hay una manera en la que se envíe el correo de forma automática (sin tener que abrir el documento o estar en la hoja donde se tiene los datos) al cambiar el valor. Por ejemplo, segui tu video para hacer un recordatorio. Esto funciona hasta la parte donde se está la celda activa. Si escribo la palabra "Enviar" envía el correo, pero si pongo en una Columna T3 la palabra "Enviar", pero la columna que me detecta la secuencia de comandos es en la O3 (por ejemplo) y si pongo en la celda que "=T3", y se muestre la palabra "Enviar", no se envia el correo. Como podria realizar eso? Espero que me haya explicado lo suficiente. Saludos.
Hola Antonio PAra estos casos ya no usariamos activadores de edición sino activadores de tiempo, como en este video th-cam.com/video/lrQQrOA_uKw/w-d-xo.html Un gran saludo!
@@JuanSGuzman gracias por responder. A lo que surgen dudas del mismo. Los activadores funcionan cuando pasa un determinado tiempo, la idea que tengo es que cada vez que una celda cambie de valor al pasar un tiempo marque "Ok" para que envíe el correo de manera automática. Al tener un activador este se estará ejecutando en un determinado tiempo? Ya que la base de datos donde tengo las fechas de vencimientos, varían desde meses a años.
@@JuanSGuzman ese mismo codigo es el que tengo aplicado, pero por ejemplo en el video envia el correo cuando en estado dice VENCIDO, entonces que al momento de enviar el correo copie el cliente y la fecha de vencimiento, como se puede hacer?
Hola@@JuanSGuzman , con este extracto de codigo envia el correo al momento que en estado encuentre POR VENCER y estadomail sea distinto a Enviado, if (estado == "POR VENCER" && estadoMail != "Enviado") { GmailApp.sendEmail(destinatario, "Se ha vencido tu credito", "Se ha vencido tu credito") hoja.getRange(fila, 8).setValue("Enviado") } } } Pero como logro hacer que si encuentra una o mas filas que digan POR VENCER, en el correo copie cliente y fecha vencimiento, por ejemplo Pedro 25/9 y Maria 15/9 segun el mismo ejemplo que tienes en el video.
Algo asi const email = celdaActiva.getSheet().getRange(filaActiva,1).getValue(); const nombre = celdaActiva.getSheet().getRange(filaActiva,2).getValue(); const fecha=celdaActiva.getSheet().getRange(filaActiva,3).getValue();
if(nHojaDatos==nHojaActiva && filaActiva > filasEncabezado && colActiva == colCondicion && valorActivo==valorCondicion){ MailApp.sendEmail(email, "Te acabamos de enviar un mail instantaneo", "Hola "+nombre+", tu crédito se vence en "+fecha); celdaActiva.getSheet().getRange(filaActiva,8).setValue("Enviado"); } @@luisguzmancabrera4353
En caso de que el valor sea enviado por formulario, la condición de IF, para la columna 7, o la que se escoja , se gatilla bien, pero también se gatilla el envío de correo cuando llega la respuesta por formulario, como si se desestendiera de la condición "IF".
Hola Benjamin Excelente comentario Creo que podemos hacer el envío de datos de formularios directo desde el forms, para evitarnos posibles incompatibilidades una vez llegue al Sheets Ya estoy preparando el video Saludos!
@@JuanSGuzman Hola Juan, ya me funcionó, tuve que crear el script en otra hoja de Google y luego pegarlo en la hoja donde lo necesito, asi me reconoció las constantes que me daban problemas. Muchas gracias..!! Ahora estoy trabajando en colocar en negritas algunas constantes que necesito resaltar en el correo enviado.
@@JuanSGuzman otra cosa que no estaba dejando el código funcionara, es que el numero de filas y columnas se empieza a contar desde 0, como estaba contando a partir de 1 no hacia nada cuando cambiaba los datos en la celda porque estaba leyendo otra columna que no era la que yo queria que leyera.
Buenas noches intente realizarlo,y aun que todo el código esta bien,las constantes no se me colocan en color azul como lo muestra en el tutorial y no realiza el envío,y realice la prueba para detectar errores,pero el programa funciona bien,sin embargo no realiza envios,le agradezco si puede orientarme en que puedo estar haciendo mal.
Que buen video! Te consulto si sabes como puedo hacer para crear un scrip que me envie un mail cada vez que el valor de una celda supera un máximo o cruza hacia abajo un mínimo. Por ejemplo el mínimo es 100 y el máximo 200, cuando el valor de la celda oscila dentro de ese rango no pasa nada, pero si el valor baja a 99 o sube a 201 quisiera que me envie un mail de alerta. Tanto el mínimo como el máximo están en otra celda de la google sheet. Es para generar alertas en activos financieros y prestar atención cada vez que el precio de los mismos (no son mas de 10) escapa del rango predeterminado.
Hola! Seria el mismo proceso que hicimos en este video pero haz un activador que se ejecute cada 5 minutos o cada hora, para que revise si ha superado los limites Saludos!
@@JuanSGuzman claro y Vi todos los videos relacionados, pero no he vista que cuando se lea de correo al principal, pero adicional A ello quiero mandar un correo a una persona o personas adicionales como evidencia(CC o CCO) de que se le mando mail, porque la en el método sendmail( ) no tiene esa opción.
@@JuanSGuzman Gracias, cuando lo vi en mi celular no me salia el link, pero ya lo vi y te deje una consulta en el video, en verdad muy muy agradecido con tus aportes.
Como puedo hacer para que si desmarco y vuelo a marcar el checkbox no lo vuelva a enviar si en la columna de estado envio dice Enviado? Intente agregando una constante const estadoMail = 14; y una comparacion mas en el if .... && estadoMail !="Sent"..... if (nHojaDatos == nHojaActiva && filaActiva > filasEncabezado && colActiva == colCondicion && valorActivo == varlorCondicion && estadoMail !="Sent"){ Pero no funciona
9:31 Preguntas que caso especifico no hemos tocado, puessssss el este: Tengo en una misma línea a un cliente con hasta 3 correos diferentes, al cual quiero enviarle la misma plantilla de correo a cada uno de sus correos. Puede que funcione haciendo una columna la concatenación, estoy por probarlo mientras reviso todos los videos de correos que tienes en la lista de reproducción, de pronto allí si que haz tocado esa solución pero hasta donde voy revisando los videos, no lo he visto. Si no lo haz hecho, ya tiene otra idea para los videos sobre correos. Saludos!
No entiendo la diferencia del Activador: - Al editarse - Al producirse un cambio Una cosa que he visto, es que el activador está cada segundo produciendo procesos en segundo plano, no se que tan bueno sea eso, todo el tiempo está buscando la opción de enviar el email, y he visto que en algunos casos manda hasta 2 o 3 veces el correo antes de poner la palabra "Enviado" para detener el envío. Creo que prefería ponerlo cada minuto para ver si cambia eso.
Hola Al editarse, se refiere al escribir o borrar algo en una celda Al producirse un cambio tambien contempla insertar o eliminar filas, columnas u hojas Saludos!
Podríamos mejorar esto de varias maneras: Por un lado podríamos hacer plantillas más "bonitas" o completas en HTML. Por otro lado, podríamos tener varias plantillas y poder escoger a cual podemos enviar. ¿Más sugerencias?
Hola Juan , justo busco algo similar , nose si podrias ayudarme , me envían correos constante donde me piden que le escane un documento para esto me envian los datos como nombre, numero de ficha , paciente , motivo y la fecha y hora , luego esa info la tengo que descargar a un excel . Gracias a tu video ya no sera necesario descargar la info porque lo hara automático, pero quisiera que enves de que diga "Te enviamos un mail" , que envie los datos mencionados para que quede en el correo , como seria el codigo alli ??
@@giulianoescobar535 Aquí te dejo un video para enviar un correo un poco más complejo
th-cam.com/video/bDA7vZSaKNA/w-d-xo.html
Saludos!
Estimado Juan:
Estoy siguiendo sus tutoriales.
Le consulto cómo puedo hacer para juntar este código + el que realizó para responder con un texto más completo + un adjunto que tenga para cada cliente sin usar plantilla (porque las imágenes son muy diferentes de un cliente a otro)
Agradecería enormemente me pueda guiar.
Saludos desde Argentina!!!!
Buenas tardes Juan, quiero hacer lo mismo pero no en una hoja activa, sino en la hoja de cálculo de resultados que genera un Formulario de Google. Me funciona perfecto si modifico la variable programada directamente en la hoja, pero no se activa enviar el mail cuando el el formulario alimenta la hoja de cálculo. Será que debo sustituir el SpreadsheetApp.getCurrentCell()
Saludos desde Chile!
@@AlvaroCastroF Revisate este video
th-cam.com/video/TTqv_vbaVoI/w-d-xo.html
Saludos!
Hola Juan, muchas gracias por compartir tus conocimientos, son de gran valor.
podrias ayudarmecon algo...
necesito saber como hago si esa casilla de verificacion pertenece a otra hoja de calculo de google sheets, porque cuando en la otra hoja de calculo verifican la casilla en la hoja de calculo donde tengo mi scripp no se envia el correo, solo lo permite si esta en la misma hoja y lo necesito tomando la informacion desde otro archivo.
es posible hacer esto?
Por ultimo, muchas gracias por el material, hasta alguien que no entiende mucho de este tema puede programar cosas sencillas
Hola
Excelente! Me alegra ser de utilidad.
Un gran saludo!
¡Hombre, qué chimba lo que hace! Dios lo bendiga mucho, lo siga colmando de conocimiento & ganas de colaborar. Sus videos me han sido de mucha ayuda, incluso lo siento más profesor que los propios profesores de mi carrera. Me gustaría mostrarle el proyecto que hice cuál niño de primaria orgulloso de lo que hizo jajaja.
¡ÉXITOS!
Hola!
Que amables palabras! Mil gracias!
Saludos!
¡Muchas gracias! Una duda, si quiero tomar en cuenta 5 columnas en lugar de 1, ¿cómo puedo ajustar la condición?
Quiero hacer un proceso que en cuanto se marque la casilla de verificación del paso 1 (por ejemplo) se mande un correo de actualización y así con los pasos 2, 3, 4 y 5
Hola!
Puedes cambiar la condición a algo así
if(nHojaDatos==nHojaActiva && filaActiva > filasEncabezado && (colActiva == col1 || colActiva == col2) && valorActivo==valorCondicion)
Y tener las variables col1,col2 y cuantas mas quieras.
Hay métodos mas eficientes, pero ese te debe funcionar
Saludos!
Perfecta explicación, sencilla y concreta.
Mil gracias Manuel
Un gran saludo!
¡¡¡APORTACIÓN!!!!: Hola comunidad, Probé a poner "✔️" en vez de "Enviado" en el EstadoEnvio y funcionó!! Ahora mi tabla es mucho más visual. Se podría aplicar a cualquier tipo de señales. La verdad que no sabía que app script soportara emojis, es genial. Saludos Juan!
Hola!
Muchas gracias por el excelente aporte!
Un gran saludo!
buen video.
la celda que dice enviado garantiza q se envio correctamente?
hay alguna forma de obtener una respuesta del envio para saber q se envio correctamente.
gracias.
Hola!
Excelente pregunta!
En principio, que el comando este despues de la linea de envío nos asegura que se ejecutó la linea correctamente.
Si hubiera un error no pasaria a la siguiente
Hay un metodo llamado try con el que podriamos ir más alla y "atrapar" los errores, si llega a haberlos a la hora de enviar
Saludos!
Hola Juan. Gracias por estas increibles herramientas. Pero, tengo una consulta: si la hoja de calculo es compartida y otro usuario la modifica, el email se envía desde el propietario de la hoja. Que comando deberia añadir para que el email se envíe desde quien edita la hoja? Saludos y graciaas!!!
Te tocaría tambien ponerle un activador a ese otro usuario
Saludos!
Felicitaciones!!!! Funciona de maravillas!!! Todo sea por mejorar la productividad de los procesos y mis equipos de trabajo agradecidos como yo!
Mil gracias Carlina!
Hola Juan he aprendido mucho con tus videos me gustaría tener una asesoría personal tengo varios códigos pero me faltan cositas jejeje quedo pendiente de tu tiempo y el costo.
muchas gracias
profe, pregunta, ¿como puedo usar el resultado de una formula como condicion o como puedo colocar condiciones >, , ?
Hola
Aquí te dejo un video donde lo hago
th-cam.com/video/xwq9t-xJsxs/w-d-xo.html
Saludos!
Buen día
Y hay alguna app en Google Workspace Marketplace que haga todo eso sin escribir código?
Hmmm
No sabría decirte
No se si autocrat o alguna de estas lo hagan. Si la encuentras me avisas. Bueno saberlo!
Saludos!
hola muchas gracias por estos videos !!! una consulta, luego que una persona competa un forms y ese dato llega a un sheets, puedo programar que se le envíe cada 2 semanas un correo recordatorio automatizado, es decir, sin que yo ingrese a google sheets que el correo salga solo por el hecho de cumplirse 14 dias del ultimo envío?
Hola Cesar
Claro que si
Mira este video que puede darte ideas
th-cam.com/video/D9ak2IYcEf8/w-d-xo.html
Un gran saludo!
Muy buena explicación, gracias
Gracias a ti!
Hola Juan , agradecerte por tu videos son excepcionales y ayudan un monto. hice el código tal cual el video pero no me toma la condición de envió que seria "SI", que podrá ser ? saludos
Hola!
Revisa q que te este tomando el valor que quieres
Puedes revisar con un Logger.log(que si te trae el "SI". Revisa mayúsculas y minúsculas
Saludos!
@@JuanSGuzman hola Juan disculpa que te moleste de nuevo, pero intente con el logger.log y no me traer nada, me dice que espere que no arroja datos, inserte un botón en la plantilla para asignarle la función de envío, y si pongo "SI"(que es el valor que quiero dar para que envíe el correo)en la columna de la condición y presiono el botón lo envía; pero al no tener el "SI" no lo hace . Espero que me puedas entender y orientarme saludos!
@@federicobelossi2924 Hola Federico
Habría que ver el código, porque no te entiendo muy bien, jaja
Saludos!
Estimado Juan:
Me funciona muy bien el código siempre y cuando esté parada en la celda, pero si estoy situada en otra hoja, cómo cambiar para que lo entienda? Agradecería orientación
Hola!
Revisate este video
th-cam.com/video/xwq9t-xJsxs/w-d-xo.html
Saludos!
Buenas Juan, estupendo video, me ha dado luz para realizar una automatización para una tienda online. Estaba pensando en que me mandaran un mail cuando el precio cambie, es decir, automaticamente tengo los precios del proveedor, y me gustaría que automáticamente me mandara un mail si el precio del proveedor cambia. Como tengo automaticamente el feed de datos con la tienda online, no quiero que cuando ellos cambie el dinero, que no me sea rentable, con lo que tendría que revisar precios antes de subir los precios. ¿podrías realizar un video donde automáticamente mandara un mail si el precio de un producto cambiara?, Saludos :)
Hola excelente video! Yo quisiera preguntarte si sabes si se pueden hacer ciclos, como "for" o "do while", o si tienes ya algún vídeo? O como se utilizan en este código de macros?
Hola!
Claro que si
Te remito al video de envío masivo donde usamos ciclos
Ojalá te sirva!
th-cam.com/video/aQJulEXT7rQ/w-d-xo.html
Un gran saludo!
Hola Juan; muchas gracias por tus videos, estoy aprendiendo un montón cosas por implementar. Tengo una consulta, tengo una hoja compartida con más de 10 usuarios, quisiera que me notifique por correo solo cuando se llena una columna (por ejemplo: Columna B) o solo cuando dos usuarios hacen cambios; esto debido a que si los 10 hacen cambios, estarían llegando notificaciones a cada momento. Es esto factible? Muchas gracias :)
Si los usuarios son de workspace si se podría
Saludos!
@@JuanSGuzman Hay algún tutorial o alguna pista que pueda ayudarme; muchas gracias.
@@junioriparraguirremaguina8586 Voy a hacer un video, pero debes usar el servicio Session.getUser()
Saludos!
Profe, no se si tiene algun curso en Udemy o hace clases particulares.
Hola!
Tengo un curso en Udemy pero creo que está un poco desactualizado
La mejor opción es la academia, creo yo
Saludos!
hola juan te hago una consuta, nose si ya la respondiste o no, no lo encontre.
arme la plantilla y envia bien el correo, pero solo lo hace cuando escribo la palabra en la celda. pero cuando cambia la celda automaticamente por alguna formula. no envia el correo. ( yo arme esta plantilla para que me envie el correo si en una celda especifica cambia por que llego a la fecha de vencimiento, pero no sale el correo, solo sale si escribo en esa celda. por que podra ser?
Hola Santiago
Muy buena pregunta
Lo que pasa es que Sheets no considera los cambios en fórmulas como "cambios" que activen el onEdit();
Una posibilidad es poner un activador de tiempo que corra cada 5 minutos
Aquí te dejo un video
th-cam.com/video/lrQQrOA_uKw/w-d-xo.html
Un gran saludo!
Bárbaro.. consulta si yo creo mi código y lo agrego a biblioteca como puedo hacer para usarlo. Porq quiero proteger mi código para que no lo vean o modifiquen
Hola Juan, se puede automatizar el envio de correos por fecha?, por ejemplo, tengo una base de datos en google sheet, y una de sus columnas son Fechas de Vencimiento. Entonces, realizar un algoritmo que compare la fecha de vencimiento con la fecha actual de hoy , y si esta es menor a 7 dias, enviar de forma automatica un correo de alerta. Pero enviarlo de forma automatica, sin estar revisando el archivo de forma constante. Gracias
Lo pudiste hacer?
hola, lo pudiste hacer ? yo no he podido
¡Hola Juan! Qué excelentes tus videos. Una consulta, ¿sabes cómo hacer para que el texto no se corte cuento se sobrepase los 76 caracteres en una oración en el cuerpo del mensaje ? Se ve mal cuando envío el mensaje. Gracias de antemano.
Hola Cristian
No sabía que pasaba. ¿Hablas de un sólo párrafo?
¿Has intentado ponerle "line breaks" con ctrl+enter?
Un gran saludo!
@@JuanSGuzman Sí, en textos largos se cortaban las oraciones. Gracias por la sugerencia.
Buscando logré solucionarlo. Lo envié en fomato html, y en cada párrafo le puse para los saltos de línea.
Lo otro que quería consultarte es cómo poner la firma. para cada correo, por favor.
@@cristianbancayannavarro3415 Excelente que hayas solucionado!
Lo más fácil es incluirla en el HTML, pero voy a ver si hay alguna forma automática
Saludos!
Juan, como podrian enviar el correo a varias direcciones? las direcciones las tendria en una lista en otra hoja del mismo archivo. Saludos
Hola!
let destinatarios="pedro@gmailcom, karen@tt.com"
GmailApp.sendEmail(destinatarios
Saludos!
@@JuanSGuzman gracias. Lo voy a probar
@@JuanSGuzman intento así, pero uno de los correos lo tengo ya en una variable, que extraigo de una celda. Y no logro incluir en el campo de destinatario que le acepte tanto la variable como otros correos, que meto directo y son fijos
@@edilbertoserrano8472 Intenta asi
var correoQueYaTraes;
var otrosCorreos="juanito@gmail.com,pedrito@gmail.com"
var destinatarios=correoQueYaTraes+","+otrosCorreos
GmailApp.sendEmail(destinatarios
Saludos!
Hola. Primero que nada quiero agradecer por los videos. Son excelentes y muy buenos explicando. Me han servido demasiado. Tengo una duda para saber si me podrías ayudar: en uno de tus videos muestras como enviar correos utilizando un código que detecta la modificación de un valor en una casilla y envía el correo automáticamente. Mi duda es ¿habría posibilidad de modificar ese código para poder configurarlo para que el envío sea cuando se registre un formulario nuevo? Mi archivo de sheet esta conectado a un formulario de google forms, por lo que cada vez que hay una respuesta nuevo, se captura automáticamente. Mi intención es enviar un correo electrónico cada vez que haya un registro nuevo. Espero tu respuesta y te agradezco de nuevo todo el contenido que haz creado.
Mil gracias por las amables palabras!
Si se puede y ya estoy preparando ese video , dame unas semanas
Un gran saludo!
@@JuanSGuzman Gracias por la respuesta! Espero que ese vídeo llegue rápido. Será de gran ayuda para un proyecto que me encuentro trabajando. Muchas gracias de nuevo por la respuesta y por todos tus videos de excelente calidad y utilidad!
@@serviciostacticos563 Gracias a ti!
Muy bueno!!!! me ayudo mucho actualmente envio email a proveedores por google sheets ; Una pregunta existe alguna herramienta que permite enviar mensajes múltiples al Whatsapp algún API...muchas gracias
Hola!
Que bueno que te sirva!
Ya me han preguntado varias veces lo de Whatsapp y no me he puesto a investigar. Me queda pendiente la tarea!
Saludos!
Hola Juan,
Estoy empezando en este mundillo de Google Sheets y me he visto muchos videos tuyos.
Ahora estoy investigando para hacer que los datos que los clientes nos envian al Gmail se me copien en una fila nueva dentro de Google Sheets.
No encuentro mucha info, podrías indicarme algo al respecto?
Muchas gracias de antemano
Hola!
Tengo pendiente ese video
Tienes que conectarte con Gmail. Lo más fácil para que no te toque buscar en todos los correos es primero hacver un filtro en Gmail para que te etiquete los correos y usar esa etiqueta como una condicion en Sheets para que te los "grabe"
Saludos!
Hola Juan, gracias por todos tus vídeos, me han sido de gran utilidad , una gran duda uno de mis sheets esta conectada a un form para que se llene automático y ligué mi código de envío de correos masivos al activador de ejecutar cada que ocurre un cambio, el tema es que unos datos en mi sheets los tengo para que se complementen con un ArrayFormula y cada que se ejecuta el activador estos datos se dañan, lo cambie a solo formula quitando el ARRAY (que es un simple BUSCARV ) y también cada que se ejecuta el activador me borra estas formulas, todo lo pone en valores y cada que me llega un nuevo registro no envia mi mail porque se dañan las formulas :( espero me entiendas y me puedas ayudar, saludos desde México
Hola Diana
Pregunta: DOnde se te borra es la misma pestaña donde te trae los datos del forms (la pestaña morada)?
Un gran saludo!
@@JuanSGuzman Gracias por contestar Juan, donde se borra la info es donde tengo las formulas de buscarv/array formula (estos datos no vienen del form, son datos que complementan los datos que me llegan del form y uno de ellos es el mail al que se enviara el correo y este lo obtengo con un buscarv) y toda la info la tengo en la misma pestaña, la info del form es de la columna 1 a la 13, y la info del correo con buscarv esta en columna 14
@@dianajanetpelaezhernandez1299 Hola Diana
Una posibilidad para que pruebes, es que abras otra hoja
Dejes separadas la del form y la otra de las formulas
en esa de las formulas traes la info de la de forms con un query o un {} y seguido a esto pones las formulas
ME cuentas
Un gran saludo!
@@JuanSGuzman Hola Juan! ya intente de estas 2 formas que me sugieres peeeero ya vi que las formulas se ponen en valores cuando ejecuto mi botón de envió masivo de correos, cuando envío un mail no pasa nada , entonces el problema no es el activador es en el envío masivo :(
@@dianajanetpelaezhernandez1299 Tienes razón! Es algo que me di cuenta despues con alguien que me comentó. Aqui te va el cambio
cambia la parte de contactos.forEach por esta (con tus datos, obvio
contactos.forEach(function(fila,indiceFila){
if(fila[colColfirmacion-1]!="Correo Enviado"){
//Logger.log(fila[56],);
var mensaje1 = crearMensaje1 (fila);
GmailApp.sendEmail(fila[56],"Pago fallido, Maihue Chile. Actualiza tus datos de cobro" ,mensaje1);
hoja.getRange(indiceFila+3,colColfirmacion).setValue("Correo Enviado");
hoja.getRange(indiceFila+3,colFecha).setValue(new Date());
cont++
}
})
Me cuentas si te sirve
Saludos!
Hola Juan, Excelentes tus videos y explicaciones. Se aprende muchísimo! Consulta: he puesto en práctica este código, pero aparentemente solo funciona si el usuario edita y cambia el valor de la celda. En mi caso, es una función la que cambia el valor del resultado en la celda, pero no la fórmula en si, cuestión que aparentemente eso no es tomado por la rutina del script como un cambio en la celda y por lo tanto no se envía el mail. Podrías ayudarme con esto o tienes un video al respecto? Muchas Gracias!
Hola
Mil gracias por tus palabras!
Te dejo un video que hice para la academia, donde hago algo similar y uso activadores de tiempo
drive.google.com/file/d/19QpOVM4jbl7S3bf2zfb79NdYH5FzPEpP/view?usp=sharing
Un gran saludo!
@@JuanSGuzman Hola Juan Buenos días, primero que todo agradecerte por los videos son excelente, segundo, estoy tratando de implementar este código pero al igual es una formula la que hace el cambio del archivo y al parecer asi no funciona, tienes algún video en el que me puedas ayudar a como hacerlo?
Hola! Todavía no he hecho un video de esto. Aquí te dejo uno que hice exclusivo para los alumnos de la academia. Ojalá te sirva. Saludos!
Te lo paso mientras hago el video en el canal
drive.google.com/file/d/19QpOVM4jbl7S3bf2zfb79NdYH5FzPEpP/view?usp=sharing
Saludos!
Me refuncionooo profeee! estuve 3 días intentando y ahora en dos horas ya me salió. Este era mi último video por ver! buenísima la explicación Profe. Los trigger lo que me doy cuenta que la mayoría que explica se olvida de decir cual actualizar! Graciaaas Profeee idolo!
Gracias por los aportes son excelentes, mas cuando vamos iniciando a utilizar estas herramientas. Una duda me da un error que indica " Exception: Selecciona una hoja activa primero. (línea 7, archivo "Código") " ojala puedas ayudarme. Gracias y Bendiciones
Hola!
Claro que si. Dejame ver como tienes la linea 7
Saludos!
@@JuanSGuzman Muchas gracias. Estuve checando el código y esta correcto, funciona cuando edito manualmente esa columna seleccionada (como en tu ejemplo columna 7), pero si en el activador cambio de opción en "seleccionar el tipo de evento" la opción "al editarse" la cambio a " al producirse un cambio" aquí es cuando me arroja este error de scrip :
Función Mensaje de error Activación
EnvioMail Exception: Selecciona una hoja activa primero. change
@@JuanSGuzman Gracias encontré la solución acá th-cam.com/video/BUZPZX84e1o/w-d-xo.html
@@selenecat1676 Te voy a ser sincero. No he entendido bien la diferencia entre "al editar" y "al producir un cambio". Siempre escojo "editar". Pero voy a investigar mejor
Un gran saludo!
@@selenecat1676 Excelente! Lo hiciste con onEdit? Buenisimo. Lastima no te pude dirigir inmediatamente al video adecuado. A veces me enredo con tantos videos. Lo importante es que solucionaste. Un gran saludo!
Hola buenas tardes excelente video amigo, disculpa y para que en lugar del check o la palabra verdadero, como podria ponerle para que sea cualquier valor en mi caso son numeros de telefono., intente ponerle "mayor que 1" pero no me lo corre asi me podrias ayudar porfavor Gracias
Hola!
Podrías poner esto
&& valorActivo!=""
Saludos!
@@JuanSGuzman muchas gracias lo probaré saludos
@@moisesgzz9491 Me cuentas!
Buenos dias!
La verdad és que me estan sirviendo mucho tus vídeos! Muchas gracias!
Ahora mismo estoy trabajando con un google sheet para tener controlado el material de alquiler que tenemos en mi entidad.
Des de un formulario de google, recojo los parametros de nombre de la entidad que hace el pedido de alquiler, el material deportivo que vendrà a recoger, i cuantos packs. Esto me genera un QR con toda la informacion de esa reserva.
Ahora lo que quiero es que este Qr se envie de manera automatica a la persona que me lo ha enviado, para que cuando venga a buscar el material, yo solo tenga que leerle el QR i de esta manera ya me ponga que ese material esta .
Seguidamente, me gustaria que con la segunda lectura del mismo QR, pudiera poner que esta .
De momento tengo el QR con los datos de la reserva i cuando lo leo me pone , pero no he conseguido enviarlo automatico, i tengo que hacerlo a mano...
Crees que tiene solucion?
Hola Juan ! Que tal? Querría saber si dicha fórmula funciona si el cambio de celda es automático. Yo lo querría utilizar para que me notifique en el correo fechas vencidas de un inventario. Si no valiese está formula, ¿Tiene un vídeo donde lo expliques? Un saludo. Cómo siempre, enhorabuena!
Hola!
No lo he hecho aun
Te dejo un video que hice para la academia donde hago algo similar a lo que quieres
drive.google.com/file/d/19QpOVM4jbl7S3bf2zfb79NdYH5FzPEpP/view?usp=sharing
Saludos!
Tengo una macro pero por algún motivo dejó de funcionar. Tengo el código, en realidad son dos: uno numletra y otro más para generar el PDF.
La verdad es que no sé nada de programación. Apenas empezaré a estudiar el tema, pero me gustaría saber si me puedes apoyar a indicarme como hacer para que sea funcional en un nuevo archivo.
Quedo atento a tu respuesta.
Hola!
Ya te respondí en otro video
Saludos!
Gran ayuda! eres buenisimo... like a tus videos
Hola!
Que amables palabras! Mil gracias!
Saludos!
Si quisiera hacer el envío de mail pero si se realizara el cambio en 2 o más columnas
Hola!
Pones las dos condiciones con &&.
Lo que tienes que decidir es en que momento se va a activar. En cual de las dos
Saludos!
Hola Juan, ahora que Google está apostando fuerte por Workspace, ¿crees que se podría enviar un mensaje via Chat algún miembro de la organización o alguna Sala? Muchas gracias
Hola Jaime
Sin asegurarte nada, creo que si se puede.
Lo anoto para otro video
Un gran saludo!
@@JuanSGuzman Muchas gracias
Hola Juan una pregunta, si necesito valorar varias columnas y no solo una como podría modificar el código?
He intentado añadiendo un "-" desde la columna inicial hasta la columna final, algo así: const colCondicion = 11-69 pero no me envía las notificaciones
Hola! Tienes que hacer condición por condición separándola con ||. Algo así
colCondición1=11
colCondición2=12
Y después
If(col==colCondicion1 || col==colCondicion2)
Obviamente esta no está forma más eficiente.
Aquí te dejo un video que no tiene que ver con envío de correos pero te va a servir y lo puedes aplicar
Saludos!
Cómo registrar una fecha automáticamente (timestamp) ⌚ en varias hojas en Google SHEETS
th-cam.com/video/QjsHCPlecNY/w-d-xo.html
Lo primero agradecer el trabajo! Tengo casi listo el script pero no quiero usar 'celdaActiva' para hacer el 'setvalue ("enviado")', sino una celda en concreto, por ejemplo la 'AQ3'. No consigo crear ese código y debería ser sencillo, no?
Nada, lo conseguí! Después de un par de días de aprendizaje acelerado he conseguido que envíe el email cuando el stock baja de cierta cantidad (te hice la consulta en tu blog y me indicaste amablemente que esperara a este vídeo, con el que por fin he logrado ese control de stock). Muchas gracias!
@@shhsimulation Gracias a ti por los comentarios y por la recursividad!
Saludos!
Juan buenas tardes una consulta, como podría aplicar esta funcionalidad y que le llegue a los destinatarios sin saber el remitente (Que llegue como "no reply") gracias
Hola Sebastian
Intenta con este
Gmail.sendEmail(destinatario,asunto,mensaje,{
noReply:true;
})
Un gran saludo!
Hola, quiero hacer algo parecido. Deseo copiar a otra hoja los valores escritos en la columna A, B, C y D al marcar la casilla de verificación de la correspondiente fila. Como podría realizarlo?
Hola Guido
Hola
Aquí te dejo algunos videos donde lo hago
th-cam.com/video/zefkA3J0XB4/w-d-xo.html
th-cam.com/video/wWEKbOBDxgg/w-d-xo.html
th-cam.com/video/1qW5d7IAFBQ/w-d-xo.html
Saludos!
Juan, antes que nada, gracias por tu valiosísimo aporte con tus tutoriales. Estoy teniendo un error, y es el siguiente:
function () { [native code] }
at enviarMailInstantaneo(Código:18:13)
El código está escrito igual que el tuyo, tenés alguna idea de que puede llegar a ser?
Gracias!
Hola Fiorella
Esto normalmente sucede cuando no le pones paréntesis a las funciones
Un gran saludo!
@@JuanSGuzman Clarísimo Juan, era eso! Muchas gracias
Hola como puedo hacer si solo quiero que se envíe a un solo correo ?
Buenas tardes Juan, muchas gracias por compartir estos videos,. Me han ayudado bastante. Tengo una duda, hay una manera en la que se envíe el correo de forma automática (sin tener que abrir el documento o estar en la hoja donde se tiene los datos) al cambiar el valor. Por ejemplo, segui tu video para hacer un recordatorio. Esto funciona hasta la parte donde se está la celda activa. Si escribo la palabra "Enviar" envía el correo, pero si pongo en una Columna T3 la palabra "Enviar", pero la columna que me detecta la secuencia de comandos es en la O3 (por ejemplo) y si pongo en la celda que "=T3", y se muestre la palabra "Enviar", no se envia el correo. Como podria realizar eso? Espero que me haya explicado lo suficiente.
Saludos.
Hola Antonio
PAra estos casos ya no usariamos activadores de edición sino activadores de tiempo, como en este video
th-cam.com/video/lrQQrOA_uKw/w-d-xo.html
Un gran saludo!
@@JuanSGuzman gracias por responder. A lo que surgen dudas del mismo. Los activadores funcionan cuando pasa un determinado tiempo, la idea que tengo es que cada vez que una celda cambie de valor al pasar un tiempo marque "Ok" para que envíe el correo de manera automática. Al tener un activador este se estará ejecutando en un determinado tiempo? Ya que la base de datos donde tengo las fechas de vencimientos, varían desde meses a años.
Hola Juan...como podria mejorar un codigo que si en una celda diga "por vencer", enviar el correo con la informacion que tiene la fila?
Hola
Aquí te dejo un video donde lo hago
th-cam.com/video/xwq9t-xJsxs/w-d-xo.html
Saludos!
@@JuanSGuzman ese mismo codigo es el que tengo aplicado, pero por ejemplo en el video envia el correo cuando en estado dice VENCIDO, entonces que al momento de enviar el correo copie el cliente y la fecha de vencimiento, como se puede hacer?
Hola!
Creo que no entiendo
Saludos!@@luisguzmancabrera4353
Hola@@JuanSGuzman , con este extracto de codigo envia el correo al momento que en estado encuentre POR VENCER y estadomail sea distinto a Enviado,
if (estado == "POR VENCER" && estadoMail != "Enviado") {
GmailApp.sendEmail(destinatario, "Se ha vencido tu credito", "Se ha vencido tu credito")
hoja.getRange(fila, 8).setValue("Enviado")
}
}
}
Pero como logro hacer que si encuentra una o mas filas que digan POR VENCER, en el correo copie cliente y fecha vencimiento, por ejemplo Pedro 25/9 y Maria 15/9 segun el mismo ejemplo que tienes en el video.
Algo asi
const email = celdaActiva.getSheet().getRange(filaActiva,1).getValue();
const nombre = celdaActiva.getSheet().getRange(filaActiva,2).getValue();
const fecha=celdaActiva.getSheet().getRange(filaActiva,3).getValue();
if(nHojaDatos==nHojaActiva && filaActiva > filasEncabezado && colActiva == colCondicion && valorActivo==valorCondicion){
MailApp.sendEmail(email, "Te acabamos de enviar un mail instantaneo", "Hola "+nombre+", tu crédito se vence en "+fecha);
celdaActiva.getSheet().getRange(filaActiva,8).setValue("Enviado");
}
@@luisguzmancabrera4353
Hola!!!! me arroja un error al utilizar el código: Exception: Please select an active sheet first. Me podría ayudar please?? Saludos!!
A veces solo salir de la cuenta y volver a entrar resuelve ese error
Saludos!
En caso de que el valor sea enviado por formulario, la condición de IF, para la columna 7, o la que se escoja , se gatilla bien, pero también se gatilla el envío de correo cuando llega la respuesta por formulario, como si se desestendiera de la condición "IF".
Hola Benjamin
Excelente comentario
Creo que podemos hacer el envío de datos de formularios directo desde el forms, para evitarnos posibles incompatibilidades una vez llegue al Sheets
Ya estoy preparando el video
Saludos!
Hola Juan, he puesto en practica este scrip pero no me reconce los valores de celda activa, fila activa y valor activo..que podrá ser?
Dejame ver tu codigo
@@JuanSGuzman Hola Juan, ya me funcionó, tuve que crear el script en otra hoja de Google y luego pegarlo en la hoja donde lo necesito, asi me reconoció las constantes que me daban problemas. Muchas gracias..!! Ahora estoy trabajando en colocar en negritas algunas constantes que necesito resaltar en el correo enviado.
@@JuanSGuzman otra cosa que no estaba dejando el código funcionara, es que el numero de filas y columnas se empieza a contar desde 0, como estaba contando a partir de 1 no hacia nada cuando cambiaba los datos en la celda porque estaba leyendo otra columna que no era la que yo queria que leyera.
@@JuanSGuzman
function onEdit(){
const HojaDatos = "CONTROL";
const FilasEncabezado = 0;
const Colcondicion = 17;
const ValorCondicion = "Parasitos";
const CeldaActiva = SpreadsheetApp.getCurrentCell();
const Colactiva = CeldaActiva.getColumn();
const FilaActiva = CeldaActiva.getRow();
const HojaActiva = CeldaActiva.getSheet().getName();
const ValorActivo = CeldaActiva.getValue();
const Nombre =CeldaActiva.getSheet().getRange (FilaActiva,1).getValue(); {
if(HojaDatos === HojaActiva && FilaActiva > FilasEncabezado && Colactiva === Colcondicion && ValorActivo === ValorCondicion){
MailApp.sendEmail("XXXXXX@XXX.do","Aviso- Cambio Status Pruebas Médicas Control Domino's 2024","Se ha cambiado la información de pruebas médicas de " +Nombre+" a: " +ValorCondicion);
}
};
}
Ver código.
@@paolaortiz749 Me alegro que hayas descubierto el error!
Buenas noches intente realizarlo,y aun que todo el código esta bien,las constantes no se me colocan en color azul como lo muestra en el tutorial y no realiza el envío,y realice la prueba para detectar errores,pero el programa funciona bien,sin embargo no realiza envios,le agradezco si puede orientarme en que puedo estar haciendo mal.
Me pasa lo mismo
Que buen video! Te consulto si sabes como puedo hacer para crear un scrip que me envie un mail cada vez que el valor de una celda supera un máximo o cruza hacia abajo un mínimo. Por ejemplo el mínimo es 100 y el máximo 200, cuando el valor de la celda oscila dentro de ese rango no pasa nada, pero si el valor baja a 99 o sube a 201 quisiera que me envie un mail de alerta. Tanto el mínimo como el máximo están en otra celda de la google sheet. Es para generar alertas en activos financieros y prestar atención cada vez que el precio de los mismos (no son mas de 10) escapa del rango predeterminado.
Hola!
Seria el mismo proceso que hicimos en este video pero haz un activador que se ejecute cada 5 minutos o cada hora, para que revise si ha superado los limites
Saludos!
@@JuanSGuzman Muchas gracias por tu respuesta y por la valiosa capacitación que generosamente brindas en tu canal. Saludos desde Argentina.
@@cristian3610 Gracias a ti Cristiano
Consulta, si quiero enviar un mail con copia a alguien?
Hola!
No se si ya viste este video. Te puede dar ideas
th-cam.com/video/EZNieWrG_Dk/w-d-xo.html
Saludos!
@@JuanSGuzman claro y Vi todos los videos relacionados, pero no he vista que cuando se lea de correo al principal, pero adicional A ello quiero mandar un correo a una persona o personas adicionales como evidencia(CC o CCO) de que se le mando mail, porque la en el método sendmail( ) no tiene esa opción.
@@awperezsa8018 Hola Alan
Usas la opción cc dentro de las opciones del .sendEmail
Como en el video que te envié
Saludos!
@@JuanSGuzman Gracias, cuando lo vi en mi celular no me salia el link, pero ya lo vi y te deje una consulta en el video, en verdad muy muy agradecido con tus aportes.
@@awperezsa8018 Si vi tu comentario. Mil gracias!
Parece usted es un crack.
Jaja, gracias Julian! Saludos!
Como puedo hacer para que si desmarco y vuelo a marcar el checkbox no lo vuelva a enviar si en la columna de estado envio dice Enviado?
Intente agregando una constante
const estadoMail = 14; y una comparacion mas en el if .... && estadoMail !="Sent".....
if (nHojaDatos == nHojaActiva && filaActiva > filasEncabezado && colActiva == colCondicion && valorActivo == varlorCondicion && estadoMail !="Sent"){
Pero no funciona
Deeria funcionarte
El texto es "Sent"? o "Ennviado"
Saludos!
Y cheque el codigo y es igual al ejemplo
9:31 Preguntas que caso especifico no hemos tocado, puessssss el este:
Tengo en una misma línea a un cliente con hasta 3 correos diferentes, al cual quiero enviarle la misma plantilla de correo a cada uno de sus correos. Puede que funcione haciendo una columna la concatenación, estoy por probarlo mientras reviso todos los videos de correos que tienes en la lista de reproducción, de pronto allí si que haz tocado esa solución pero hasta donde voy revisando los videos, no lo he visto. Si no lo haz hecho, ya tiene otra idea para los videos sobre correos. Saludos!
No entiendo la diferencia del Activador:
- Al editarse
- Al producirse un cambio
Una cosa que he visto, es que el activador está cada segundo produciendo procesos en segundo plano, no se que tan bueno sea eso, todo el tiempo está buscando la opción de enviar el email, y he visto que en algunos casos manda hasta 2 o 3 veces el correo antes de poner la palabra "Enviado" para detener el envío.
Creo que prefería ponerlo cada minuto para ver si cambia eso.
Hola
Al editarse, se refiere al escribir o borrar algo en una celda
Al producirse un cambio tambien contempla insertar o eliminar filas, columnas u hojas
Saludos!
Muy bueno.
Mil gracias Juan!
Me gustaría que enseñaras esto mismo pero para mandar reportes de ventas en pdf a los correos señalados, por ejemplo: reporte de ventas del mes etc..
Hola!
Ya viste este tutorial?
th-cam.com/video/qpg1-FuwcX4/w-d-xo.html
Ojalá te sirva
Saludos!
Lo hice pero me llega un noreply-apps-scrit asunto Summary
Dejame ver que error te sale
Saludos!
@@JuanSGuzman te respondi
No sé si te lo puedo compartir por correo y me ayudas
Dame un correo como te lo comparto para q me ayudes
@@RosiChaparro sebastian@juansguzman.com