-1
Guys, I mounted a macro in VBA that triggers automatic messages according to some parameters determined in the table. The macro basically works with pressing the keys on the keyboard, very simple.
Briefly, the macro opens the browser in the Whats Web page, copies the contact that will already be determined in the table, pastes in the search field, locates the contact, copies the message that will also be determined in a Textbox in the table and pastes the message to the recipient. It turns out that when the contact is not located, it does not identify this and the macro no longer works.
I basically need the macro to recognize when the contact is not located and jump to the next contact.
Sub Botão6_Clique()
'Declaração das variáveis
Dim contato As String
Dim retorno As String
Dim concluido As String
Dim veiculo As String
Dim cadastro As String
Dim transferencia As String
Dim substituicao As String
Dim desalienacao As String
Dim html As String
veiculo = Sheets(1).veiculo
cadastro = Sheets(1).cadastro
transferencia = Sheets(1).transferencia
substituicao = Sheets(1).substituicao
desalienacao = Sheets(1).desalienacao
'atribui a variável linha o número 2, para iniciar na segunda linha da primeira coluna
linha = 2
'Chama o navegador e abre no link setado
ActiveWorkbook.FollowHyperlink "https://web.whatsapp.com/"
'Vai percorrer toda lista de contatos, até que ela encerre
Do Until Sheets(1).Cells(linha, 2) = ""
'Chama função de espera por 2 segundos
Fazer (15000)
contato = Cells(linha, 2)
'Se não tiver nenhum contato, aparece msg box e solicita a inclusão de algum
If contato = "" Then
MsgBox "Preencha os contatos"
Exit Sub
End If
retorno = Cells(linha, 4)
concluido = Cells(linha, 5)
'RETORNO VEÍCULO
If retorno = "Veículo" And concluido <> "ok" Then
'Chama a função de espera por 3 segundos
Fazer (15000)
'Aperta as teclas do teclado
Call SendKeys("{TAB}", True)
Call SendKeys("{BS 1000}", True)
Call SendKeys(contato, True)
Call SendKeys("~", True)
'Chama a função de espera por 8 segundos e envia a mensagem
Fazer (15000)
Call SendKeys(veiculo, True)
Call SendKeys("~", True)
Call SendKeys("{TAB}", True)
'RETORNO CADASTRO
ElseIf retorno = "Cadastro" And concluido <> "ok" Then
'Chama a função de espera por 3 segundos
Fazer (15000)
'Aperta as teclas do teclado
Call SendKeys("{TAB}", True)
Call SendKeys("{BS 1000}", True)
Call SendKeys(contato, True)
Call SendKeys("~", True)
'Chama a função de espera por 8 segundos e envia a mensagem
Fazer (15000)
Call SendKeys(cadastro, True)
Call SendKeys("~", True)
Call SendKeys("{TAB}", True)
'RETORNO TRANSFERÊNCIA
ElseIf retorno = "Transferência" And concluido <> "ok" Then
'Chama a função de espera por 3 segundos
Fazer (15000)
'Aperta as teclas do teclado
Call SendKeys("{TAB}", True)
Call SendKeys("{BS 1000}", True)
Call SendKeys(contato, True)
Call SendKeys("~", True)
'Chama a função de espera por 8 segundos e envia a mensagem
Fazer (15000)
Call SendKeys(transferencia, True)
Call SendKeys("~", True)
Call SendKeys("{TAB}", True)
'RETORNO SUBSTITUIÇÃO
ElseIf retorno = "Substituição" And concluido <> "ok" Then
'Chama a função de espera por 3 segundos
Fazer (15000)
'Aperta as teclas do teclado
Call SendKeys("{TAB}", True)
Call SendKeys("{BS 1000}", True)
Call SendKeys(contato, True)
Call SendKeys("~", True)
'Chama a função de espera por 8 segundos e envia a mensagem
Fazer (15000)
Call SendKeys(substituicao, True)
Call SendKeys("~", True)
Call SendKeys("{TAB}", True)
'RETORNO DESALIENAÇÃO
ElseIf retorno = "Desalienação" And concluido <> "ok" Then
'Chama a função de espera por 3 segundos
Fazer (15000)
'Aperta as teclas do teclado
Call SendKeys("{TAB}", True)
Call SendKeys("{BS 1000}", True)
Call SendKeys(contato, True)
Call SendKeys("~", True)
'Chama a função de espera por 8 segundos e envia a mensagem
Fazer (15000)
Call SendKeys(desalienacao, True)
Call SendKeys("~", True)
Call SendKeys("{TAB}", True)
End If
linha = linha + 1
Loop
End Sub
Function Fazer(ByVal Acao As Double)
Application.Wait (Now() + Acao / 24 / 60 / 60 / 1000)
End Function
You can try some more direct interaction with the browser, in case only via internet explorer, instantiating the browser in VBA and monitoring the DOM elements of contacts display / message not found
– Bernardo Dal Corno