.
Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
El requisito necesario para poder enviar Whatsapp con Excel es tener previamente habilitado WebWhatsapp, desde acá se obtiene el aplicativo; la macro utiliza la API oficial de Whatsapp para poder enviar mensajes a través de Excel, no es necesario tener cargado en contacto en el teléfono para poder enviarle un mensaje Whatsapp con Excel.
El bucle se inicia en la fila dos hasta la última fila con datos de la Columna A, se cargan en las variables uf, la última fila con datos; en la variable telwhatsapp, el teléfono del contacto y en texwhatsapp el mensaje propiamente dicho, se usan los siguientes códigos:
Quizá sea de utilidad también
Como Llenar Listbox con más de 10 columnas
Como Cargar Listbox con Datos Provenientes de Varias Hojas
Como hacer un link o hiperlink a google maps con Excel
Obtenido el número de teléfono para enviar Whatsapp se la macro navega hasta el link de la API de Whatsapp, cargando el número de teléfono y el mensaje, con el siguiente código:
mylinkwhatsapp = «https://api.whatsapp.com/send?phone=» & telwhatsapp & «&text=» & textwhatsapp
ActiveWorkbook.FollowHyperlink mylinkwhatsapp
Atento a que WebWhatsapp no es compatible con InternetExplorer dificulta la comunicación con el lenguaje de VBA – Excel, por lo que se apela a SenKey, esto envía los impulsos de teclas necesarios para poder lograr enviar el mensaje.
Como la aplicación de Whatsapp Web se va cargando con cada comando que se envía desde Excel, se debe esperar unos segundos para que se cargue la página Web, es decir se debe deterner la macro una vez cargada la página se procede a enviar el siguiente código, la rápidez con la que se envía el Whatsapp va a variar dependiendo de la velocidad de internet con la que se cuente, es por ello que cada uno debe modificar el tiempo en base a la velocidad de internet que posea, modificando las siguientes lineas:
Application.Wait (Now + TimeValue(«00:00:05»))
En el código anterior 05 representa que la macro espera 5 segundos hasta que la página se cargue y mande el próximo comando, esto se puede modificar en más o menos, dependiendo de la velocidad de internet que se posea.
Sugiero ver el vídeo explicativo del ejemplo llamado Como Enviar Masivamente Whatsapp Personalizados desde Excel, seguidamente se muestra el código y al final está el link para descargar el ejemplo de Excel que envía Whastapp.
Código que se inserta en un Modulo de Excel
‘**************https://macrosenexcel.com **** https://youtube.com/programarexcel*********#If VBA7 And Win64 Then
‘Si es de 64 bits
Public Declare PtrSafe Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Public Declare PtrSafe Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function GetWindowLongPtr Lib «USER32» Alias «GetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
Public Declare PtrSafe Function SetWindowLongPtr Lib «USER32» Alias «SetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr
#Else
‘Si es de 32 bits
Public Declare Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib «USER32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib «USER32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As Long
Public Declare Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
#End If
Public telwhatsapp, textwhatsapp
‘*********** by marcrodos **** https://macrosenexcel.com *** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ********
Sub EnviaWhatsapp()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set a = Sheets(«Hoja1»)
uf = a.Range(«A» & Rows.Count).End(xlupo).Row
For x = 2 To uf
telwhatsapp = a.Cells(x, «B»)
textwhatsapp = a.Cells(x, «C»)
mylinkwhatsapp = «https://api.whatsapp.com/send?phone=» & telwhatsapp & «&text=» & textwhatsapp
ActiveWorkbook.FollowHyperlink mylinkwhatsapp
Application.Wait (Now + TimeValue(«00:00:05»))
ActiveWindow.Application.SendKeys «{TAB}»
Application.Wait (Now + TimeValue(«00:00:01»))
ActiveWindow.Application.SendKeys «{TAB}»
Application.Wait (Now + TimeValue(«00:00:05»))
ActiveWindow.Application.SendKeys «(~)» ‘énvia enter para enviar mensaje
Application.Wait (Now + TimeValue(«00:00:18»))
ActiveWindow.Application.SendKeys «(~)»
Next x
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub macro1(control As IRibbonControl)
On Error Resume Next
respuesta = MsgBox(«¿Seguro desea enviar Whatsapp a los contactos listados?», vbCritical + vbYesNo)
If respuesta = 6 Then
Call EnviaWhatsapp
End If
End Sub
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
#If VBA7 And Win64 Then
‘Si es de 64 bits
Public Declare PtrSafe Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Public Declare PtrSafe Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function GetWindowLongPtr Lib «USER32» Alias «GetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
Public Declare PtrSafe Function SetWindowLongPtr Lib «USER32» Alias «SetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr
#Else
‘Si es de 32 bits
Public Declare Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib «USER32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib «USER32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As Long
Public Declare Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
#End If
Public telwhatsapp, textwhatsapp
‘*********** by marcrodos **** https://macrosenexcel.com *** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ********
Sub EnviaWhatsapp()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set a = Sheets(«Hoja1»)
uf = a.Range(«A» & Rows.Count).End(xlupo).Row
For x = 2 To uf
telwhatsapp = a.Cells(x, «B»)
textwhatsapp = a.Cells(x, «C»)
mylinkwhatsapp = «https://api.whatsapp.com/send?phone=» & telwhatsapp & «&text=» & textwhatsapp
ActiveWorkbook.FollowHyperlink mylinkwhatsapp
Application.Wait (Now + TimeValue(«00:00:05»))
ActiveWindow.Application.SendKeys «{TAB}»
Application.Wait (Now + TimeValue(«00:00:01»))
ActiveWindow.Application.SendKeys «{TAB}»
Application.Wait (Now + TimeValue(«00:00:05»))
ActiveWindow.Application.SendKeys «(~)» ‘énvia enter para enviar mensaje
Application.Wait (Now + TimeValue(«00:00:18»))
ActiveWindow.Application.SendKeys «(~)»
Next x
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub macro1(control As IRibbonControl)
On Error Resume Next
respuesta = MsgBox(«¿Seguro desea enviar Whatsapp a los contactos listados?», vbCritical + vbYesNo)
If respuesta = 6 Then
Call EnviaWhatsapp
End If
End Sub
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends