Hola hola!
En nuestro día necesitamos automatizar varios de los procesos que tenemos.
Si tu atiendes clientes por medio de WhatsApp, te puede interesar este tutorial!
En esta ocasión te muestro como puedes enviar mensajes desde Excel directamente a Whatsapp(con 1 o mas clientes).
El único requisito es que debes instalar la aplicación de WhatsApp para Pc.
Vamos a programar los dos botones, el botón «Abrir» y el Botón «Enviar».
Configurar el Botón «Abrir»
El botón «Abrir» lo que hace es abrir la aplicación de WhatsApp, para esto vamos a adicionar el siguiente código:
'Creado por Practicaprende.com
Sub AbrirWhatsApp()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")'Crea una instancia del navegador Internet Explorer
IE.navigate "whatsapp://app"' Abre la aplicación de WhatsApp
Set IE = Nothing 'Libera el objeto
End Sub
Configurar el Botón «Enviar»
El Botón «Enviar» lo que hace es leer los mensajes preconfigurados y enviar el mensaje a los contactos, para esto vamos a adicionar el siguiente código:
'Creado por Practicaprende.com
Sub EnviarMensajes()
Dim IE As Object
Dim row As Integer
row = Cells(Rows.Count, 2).End(xlUp).Row 'Encontrar ultima fila utilizada
For i = 7 To row 'Recorrer todos los clientes
Set IE = CreateObject("InternetExplorer.Application")'Crea una instancia del navegador Internet Explorer
IE.navigate "whatsapp://send?phone=+57" & Range("C" & i).Value & "&Text=" & Range("D" & i).Value ' Abre WhatsApp abriendo el cliente y precargando el mensaje
Application.Wait (Now() + TimeSerial(0, 0, 3))'Espera 3 Segundos
SendKeys "~" 'Oprime la tecla Enter para enviar el mensaje al contacto
Next
Set IE = Nothing 'Libera el objeto
End Sub
Y con esto tenemos la primera versión de enviar mensajes a WhatsApp desde el mismo Excel.
Te dejo un video con un ejemplo práctico de cómo funciona:
Espero te sirva !!!
CONCLUSION
Ya aprendiste como Enviar mensajes a WhatsApp desde Excel, puedes adaptarlo a tus necesidades!.
Puedes también programar a una hora especifica el envío de mensajes de WhatsApp, para esto puedes combinarlo con el artículo de programar macro a una hora determinada
Si quieres ver mas ejemplos que tenemos visita nuestro Blog
Espero te guste!
Saludos!
☕Si te ha gustado el contenido puedes invitarme un café! ☕
DESCARGAR EJEMPLO
En el siguiente link puedes descargar el archivo utilizado, Si tienes alguna duda o sugerencia para mejorar el código, simplemente comenta en el formulario de Contacto
Para descargar el archivo utilizado es necesario estar registrado. Acá Puedes Registrarte y si ya estas registrado puedes iniciar sesion.
Se podra agregar algo de este codigo para abrirlo y usarlo desde el navegador chrome de google
Sub Abrir_BBVA()
‘Abrir una pagina web concreta con un navegador distinto al predeterminado.
‘Abre el navegador Chrome.
Dim chromePath As String
chromePath = «»»C:\Program Files (x86)\Google\Chrome\Application\chrome.exe»»»
‘Va a la url solicitada.
Shell (chromePath & » -url https://www.bbva.es/particulares/index.jsp«)
End Sub
Oscar! buena tarde!
Actualmente el código para enviar mensajes a Whatsapp no necesita abrir un navegador visualmente, por lo cual no sería en este caso tan necesario abrirlo por Chrome.
Pero por otro lado tu código funciona para adaptarlo para abrir otras páginas o ir directamente a una pagina de BBVA en concreto.
Te agradezco tu comentario!
Un saludo!
Como puedo ejecutarlo?
Aquí ya lo descargue pero solo me deja visualizarlo
Miguel! buena tarde! debes descargarlo y seguir los pasos del artículo! debe funcionar desde Excel para Pc. Un saludo!
buenos dias, agradezco mucho el programa, pero no me funciona con chrome y quisiera enviar un adjunto
Buena tarde Tomas! el programa es un archivo de Excel , y desde allí es que se ejecuta la macro, no entiendo que quieres decir con que no te funciona en chrome! por favor, descarga el archivo e intentalo de nuevo! los adjuntos no estan incluidos aún, revisaré y dado caso actualizo este articulo.
Gracias!
Hola a todos:
Tengo una duda ¿no se puede usar sin instalar WhatsApp? O sea desde el WhatsApp Web
Si es posible ¿cómo sería el código?
Gracias anticipadas por sus respuestas
Carlos! Gracias por escribir!
Efectivamente tambien se puede en Whatsapp Web, lo que habría que cambiar es de:
«whatsapp://send?phone=…&Text=…»
a esto:
«https://web.whatsapp.com/send?phone=…&Text=» -> Importante acá es que la sesión de whatsapp debe ya estar abierta para que se dirija directamente al contacto.
Una limitante es que no podrías dar «enter» al mensaje, solamente te lo precarga, otro tema a revisar es el envío a múltiples contactos.
Pero para un contacto te funcionaría bien.
Creo que me lo apunto para un próximo artículo o actualizar este, para precargar mensajes dirigidos a un contacto en Whatsapp Web.
Quedo atento carlos!
Amigo al ejecutar me pide un permiso de internet Explorer para abrir la aplicación, funciona bien, pero es fastidioso tener que darle clic a permitir al permiso para que corra el macro. esto debe tener alguna solución
Jhose! un saludo!!
es una medida de protección de Excel, aunque en ese cuadro que sale debe salir un cuadro pequeño donde dice algo como «no mostrar esta ventana» y así podrías desactivarlo.
Me cuentas si aparece esa funcion! un saludo!
Buenas tardes, La aplique, pero no precarga el mensaje, si abre el whatsapp y el contacto, pero no el mensaje, me ayudan por favor
Buena tarde Jorge! gracias por escribir, el código se que utiliza abre el contacto y escribe el mensaje con el contenido de la celda que se encuentra en la columna D desde la fila 7, haciendo las pruebas funciona bien, vuelve a descargarlo y me cuentas! un saludo!
Buen día, al ocupar el archivo y cambiar el prefijo del pais por +593 prefijo de Ecuador se genera una pantalla dentro de mi WhatsApp indicando que «No se encontro el numero de telefono 593 por que es demaciado corto» quiciera saber como resolver el problema por favor.
Brandon gracias por escribir!
Revisa que entre el indicativo y el numero no tenga ningun espacio o caracter adicional.
Por otro lado desde el codigo debes cambiar el +57 por +593.
Espero te sirva y quedo muy pendiente!!
Hola, recorre todos los numeros pero no aparece el mensaje escrito por ende, no envia nada
Erick! Gracias por escribir!
El código esta hecho para leer desde la columna D7, desde esta celda es desde donde empieza a tener como referencia el texto a enviar por whatsapp, toca revisar que tipo de mensaje estas intentando enviar.
Intenta con uno muy simple, y luego vas viendo por que puede tu mensaje tenga un caracter especial que no lo permita enviar hacia Whatsapp desde Excel.
Un saludo y quedo atento! 👍
Hiola ME funcionó muy bien pero el enter no, tengo que dar clic para que lo envíe. Saben por qué y c´´omo corregir eso?
Tambien si ya hay alguna rutina para que se envíe a un grupo de whastApp o o en automático a todos los contactos que esten en la lista del excel.
Gracias!!
Hector! gracias por escribir!
El codigo tiene un tiempo de 3 segundos para oprimir automaticamente la tecla «ENTER», por lo cual puede que no tenga suficiente tiempo en tu caso para abrir whatsapp y precargar el mensaje.
Entonces puedes buscar en el código el siguiente código:
Application.Wait (Now() + TimeValue(«00:00:03»))
Y cambiar el número 3 por uno mas alto, puede ser 5 o 10. esto da esa cantidad de segundos de espera para oprimir «ENTER»
Por otro lado, el código esta hecho para enviar a la cantidad de contactos que tengas allí en la hoja, si tienes 10 contactos registrados en la hoja de Excel entonces te lo va a enviar un mensaje personalizado a cada uno de esos 10 contactos.
Quedo atento si tienes alguna otra duda!
Un saludo! 👍
Buenas tardes he bajado y ejecuto la apli, «pero me sale un mensaje «el numero de telefono no existe en whatsapp
Roberto! gracias por escribir!
Esto sucede porque el número debe tener el indicativo del país seguido del número de teléfono.
Por ejemplo, para Argentina, el indicativo es 54. Entonces, en la columna C del archivo que puedes descargar en este artículo, debes poner 54 seguido del número de teléfono.
¡Espero que te sirva!
¡Un saludo!
Puedes revisar el siguiente enlace para ver los indicativos de los países: https://es.wikipedia.org/wiki/Anexo:Prefijos_telef%C3%B3nicos_mundiales
hay forma por codigo de cerrar las ventanas emergentes de cuando el numero no esta en whatsapp? ya que donde encuentra un numero sin whatsapp queda eso en primer plano, y el resto de los mensajes quedan en borrador sin salir
Muy cierto, efectivamente de esta forma no habría manera de identificar por código si existe una ventana emergente, esta sería una limitante para esta macro.
estimado, gracias por el desarrollo solo una ayuda más, también me surge el mensaje emergente:
internet explorer
¿quieres permitir que este sitio web abra una aplicación en el equipo?
las opciones de los botones permitir o cancelar
lo hace con cada número de teléfono.
intenté agregando el boton {allow} pero no funciona.
¿podrás orientarme?
muchas gracias
Jorge!! Gracias por escribir!
Sobre tu inquietud tocaría revisar algunas cosas… una de ellas sería saber si tienes Whatsapp instalado en el pc.
El motivo de esto es que el código abre Whatsapp como aplicación y carga automáticamente el contacto con el mensaje predefinido.
Me confirmas y vamos viendo soluciones para que te funcione.
Un saludo!👍
Hola buen dia!! actualmente no esta funcionado el programa. no abre el whatsapp la app de escritorio.
si abro la app de forma manual no funciona tampoco. cambie de forma correcta el codigo de pais. pero no carga el mensaje. podrias revisar? porque whatsapp instalo una actualización reciententemente.
gracias.-
Sergio! Gracias por escribir!
Efectivamente veo que se actualizó whatsapp para escritorio y cambiaron varias cosas, entre ellas como tu mencionas no precarga el mensaje.
Una solución que por ahora funciona es abrir 2 veces whatsapp en donde la segunda vez sí envíe el texto, no es optimo pero por ahora funciona.
El ejemplo del método que funciona de esa forma sería el siguiente:
Sub EnviarMensajes()
Dim IE As Object
Dim row As Integer
row = Cells(Rows.Count, 2).End(xlUp).row ‘Encontrar ultima fila utilizada
For i = 7 To row
Set IE = CreateObject(«InternetExplorer.Application»)
IE.navigate «whatsapp://send?phone=+57» & Range(«C» & i).Value
Application.Wait (Now() + TimeValue(«00:00:01»))
Set IE = CreateObject(«InternetExplorer.Application»)
IE.navigate «whatsapp://send?phone=+57» & Range(«C» & i).Value & «&text=» & Range(«D» & i).Value
Application.Wait (Now() + TimeValue(«00:00:03»))
SendKeys «~» ‘Esta linea de código oprime la tecla «Enter» por lo cual hace el envío del mensaje.
Next
Set IE = Nothing ‘Clear the object
End Sub
Por otro lado el primer boton de abrir whatsapp sí esta funcionando.
Me cuentas mientras voy encontrando una mejor solucion!
Un saludo! 👍
Hola Cristhian, Excelente video, funciona muy bien… Se podria enviar un audio e imagen?
Gracias
Hola el código funciona genial, mil gracias, pero me marca el siguiente mensaje
INTERNET EXPLORER
Do you want to allow this website to open an app on your computer?
App: WhatsApp
y le tengo que dar clic en Allow cada que manda un mensaje, No tiene opción de que ya no quiero ver ese mensaje.
Si manda los mensajes pero tengo que estarle dando Allow para que los mande…. ¿Sabes como puedo quitarlo? Mil gracias!!
Mi estimado, buen dia
Soy nuevo en esto, donde se copian esos codigos de abrir y enviar?
Es en la misma hoja de exel que descargue?
saludos
Hola que tal, aun no pruebo el archivo porque no he descargado la plantilla no he visto la descarga, yo estoy buscando justamente eso que envíe los mensajes de forma automática, pero no se si se puede aplicar a la plantilla que yo estoy usando, yo tengo una donde se guardan las membresías y cuando le quedan dos días por finalizar en una columna me muestra un texto que dice «esta por vencer» y en otra columna tengo un hipervínculo para enviar el mensaje por whatsapp, funciona bien pero tendría que hacerlo uno por uno y buscaba como automatizarlo para que cuando aparezca el texto le envíe los mensajes a cada uno de los que tienen ese texto. Hay forma de adaptar este?
Saludos
Un saludo Francisco!!
El problema de usar hipervínculos es que efectivamente te toca ir dando clic a cada uno de los clientes a los cuales se les va a enviar el mensaje.
Lo que podrías hacer es utilizar la macro que muestro en el artículo, pero en el momento en que recorre cada uno de tus clientes verificar si tiene ese mensaje de que va a expirar, en caso de que sea verdadero se hace el envío del mensaje automáticamente a la cantidad de clientes que tengas.
Podrías es colocar un botón al inicio de la hoja y ejecutarlo todos los días a una hora especifica, con eso se hace el envío de todos los clientes que van a vencer la suscripción.
Un saludo y quedo atento por si necesitas más ayuda! 👍
Buenos dias, se puede enviar un mensaje con saltos de pagina y mas de 600 caracteres además de poder enviar una imagen. Gracias
Hola!!! Gracias por escribir!
1. Efectivamente se puede insertar saltos de linea, para esto se utiliza un codigo que al momento de insertar el mensaje se convierte en un salto de linea, el codigo es %0A.
Este código lo puedes usar así:
Buena tarde Andres %0A %0A nos gustaría recordarle...
Este mensaje lo que hace es colocar 2 saltos de linea luego del nombre.
2. Por otro lado el limite de la cantidad de caracteres va limitado a la cantidad de caracteres que permite una peticion GET por una URL, en este caso es un aproximado de 2000 caracteres, así que podrías poner un mensaje de aproximadamente 1800 caracteres ya que se utilizan varios caracteres para poner el «whatsapp://send…».
3. y por ultimo para el envío de imagenes se podría modificar la macro de este artículo para copiar al portapapeles una imagen que se encuentre en la ruta de la fila donde se encuentra el mensaje, y de esta forma al abrir Whatsapp se pegaría como si oprimieras Ctrl+V, de esta forma podrías enviar una imagen diferente a cada persona o usar una misma imagen para cada uno.
Espero haberte ayudado un poco, y cualquier duda adicional me comentas. 👍