diegocorreia4 Postado Agosto 1 Denunciar Share Postado Agosto 1 Olá pessoal, Tenho uma pasta com vários arquivos de holerite, que estão renomeados com a matrícula e nome do funcionario. Gostaria de enviar esses contracheques pelo whatsapp, pensei em enviar pelo excel através de VBA, será que é possivel fazer esse envio? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alyson Ronnan Martins Postado Agosto 1 Denunciar Share Postado Agosto 1 Sim, é possível enviar mensagens pelo WhatsApp utilizando VBA no Excel, mas é importante notar que você precisará de uma API ou uma integração que permita o envio de mensagens. Uma das opções mais populares é usar a API do WhatsApp Business. Vou descrever um passo a passo de como você pode fazer isso: ### Passo a Passo para Enviar Mensagens pelo WhatsApp usando VBA 1. **Obtenha Acesso à API do WhatsApp Business:** - Registre-se e configure a conta do WhatsApp Business API. - Obtenha o `API Key` e a `URL` para enviar mensagens. 2. **Configure uma Tabela no Excel:** - Crie uma planilha onde cada linha contém os dados necessários: matrícula, nome do funcionário, número do WhatsApp, e caminho do arquivo de holerite. 3. **Escreva o Código VBA:** - O código VBA irá iterar sobre as linhas da planilha e enviar uma mensagem personalizada para cada número de WhatsApp. Aqui está um exemplo básico de como o código VBA pode ser estruturado para enviar mensagens pelo WhatsApp: ```vba Sub EnviarWhatsApp() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim matricula As String Dim nomeFuncionario As String Dim numeroWhatsApp As String Dim caminhoArquivo As String Dim apiURL As String Dim apiKey As String Dim jsonBody As String Dim objHTTP As Object ' Configure a URL da API e a chave da API apiURL = "https://api.whatsapp.com/send?" apiKey = "YOUR_API_KEY" ' Defina a planilha e encontre a última linha com dados Set ws = ThisWorkbook.Sheets("Planilha1") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Iterar sobre cada linha e enviar mensagem For i = 2 To lastRow ' Supondo que a linha 1 contém os cabeçalhos matricula = ws.Cells(i, 1).Value nomeFuncionario = ws.Cells(i, 2).Value numeroWhatsApp = ws.Cells(i, 3).Value caminhoArquivo = ws.Cells(i, 4).Value ' Construa o corpo da mensagem em JSON jsonBody = "{""number"": """ & numeroWhatsApp & """, ""message"": ""Olá " & nomeFuncionario & ", segue seu holerite."", ""attachment"": """ & caminhoArquivo & """}" ' Configure e envie a requisição HTTP Set objHTTP = CreateObject("MSXML2.XMLHTTP") With objHTTP .Open "POST", apiURL, False .setRequestHeader "Content-Type", "application/json" .setRequestHeader "Authorization", "Bearer " & apiKey .send jsonBody End With ' Verificar o status da resposta If objHTTP.Status = 200 Then MsgBox "Mensagem enviada para " & nomeFuncionario Else MsgBox "Erro ao enviar mensagem para " & nomeFuncionario End If Set objHTTP = Nothing Next i End Sub ``` ### Nota Importante: 1. **Configuração da API:** Você precisa substituir `"YOUR_API_KEY"` com a chave de API real obtida do WhatsApp Business API. 2. **Formato do JSON:** O formato do corpo do JSON pode variar dependendo da API que você está usando. Certifique-se de ler a documentação da API para saber como formatar corretamente as mensagens e anexos. 3. **Segurança:** Nunca compartilhe sua chave de API em locais públicos ou não seguros. 4. **Autorização:** Certifique-se de que o envio de mensagens está de acordo com as políticas de privacidade e autorização dos destinatários. ### Alternativa Se você não tiver acesso à API do WhatsApp Business, uma alternativa é utilizar serviços de automação, como o Twilio, que oferece integração com o WhatsApp. O processo será semelhante, mas você usará a API e as credenciais fornecidas por esses serviços. Espero que isso ajude! Se precisar de mais detalhes ou ajuda com a configuração específica, estou à disposição. Se você não tem acesso ao WhatsApp Business API, ainda há maneiras de enviar mensagens pelo WhatsApp usando VBA, mas elas são mais complexas e podem não ser tão confiáveis ou estáveis. Uma alternativa seria usar uma interface web para enviar mensagens via WhatsApp Web. Isso pode ser feito utilizando um navegador automatizado, como o Selenium, junto com VBA. ### Usando Selenium com VBA Para usar Selenium com VBA, você precisará: 1. **Instalar o Selenium WebDriver:** - Baixe o Selenium WebDriver e o driver específico para o navegador que você deseja usar (por exemplo, ChromeDriver para Google Chrome). 2. **Referenciar o Selenium no VBA:** - No Excel, vá para `Ferramentas > Referências` e adicione a referência para `Selenium Type Library`. ### Exemplo de Código VBA usando Selenium Aqui está um exemplo básico de como você pode automatizar o envio de mensagens pelo WhatsApp Web: 1. **Baixe e instale os pré-requisitos:** - [Baixe o Selenium WebDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) - Coloque o `chromedriver.exe` em uma pasta de fácil acesso. 2. **Instale a Selenium Type Library:** - Use o VBA WebDriver (disponível em [GitHub](https://github.com/florentbr/SeleniumBasic/releases)). 3. **Código VBA para enviar mensagens pelo WhatsApp Web:** ```vba Sub EnviarWhatsApp() Dim driver As New WebDriver Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim matricula As String Dim nomeFuncionario As String Dim numeroWhatsApp As String Dim caminhoArquivo As String Dim mensagem As String ' Defina a planilha e encontre a última linha com dados Set ws = ThisWorkbook.Sheets("Planilha1") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Inicialize o driver do Chrome driver.Start "Chrome" driver.Get "https://web.whatsapp.com" ' Esperar que o usuário escaneie o código QR MsgBox "Por favor, escaneie o código QR do WhatsApp Web e pressione OK." ' Iterar sobre cada linha e enviar mensagem For i = 2 To lastRow ' Supondo que a linha 1 contém os cabeçalhos matricula = ws.Cells(i, 1).Value nomeFuncionario = ws.Cells(i, 2).Value numeroWhatsApp = ws.Cells(i, 3).Value caminhoArquivo = ws.Cells(i, 4).Value mensagem = "Olá " & nomeFuncionario & ", segue seu holerite." ' Navegar para o chat do contato driver.Get "https://web.whatsapp.com/send?phone=" & numeroWhatsApp & "&text=" & URLEncode(mensagem) ' Esperar carregar o chat e enviar a mensagem Application.Wait Now + TimeValue("00:00:05") ' Espera 5 segundos driver.FindElementByCss("span[data-icon='send']").Click ' Adicionar um pequeno atraso para evitar problemas Application.Wait Now + TimeValue("00:00:02") ' Espera 2 segundos Next i ' Finalizar o driver driver.Quit MsgBox "Mensagens enviadas com sucesso!" End Sub Function URLEncode(StringVal As String) As String Dim TempAns As String Dim i As Integer Dim Char As String TempAns = "" For i = 1 To Len(StringVal) Char = Mid(StringVal, i, 1) If Char Like "[A-Za-z0-9-_.!~*'()]" Then TempAns = TempAns & Char Else TempAns = TempAns & "%" & Hex(Asc(Char)) End If Next i URLEncode = TempAns End Function ``` ### Nota Importante: 1. **Interação Manual:** Esse método requer interação manual para escanear o código QR do WhatsApp Web. 2. **Confiabilidade:** O Selenium pode ser interrompido se o layout do WhatsApp Web mudar ou se houver verificações de segurança adicionais. 3. **Limitações:** O WhatsApp pode detectar automações e bloquear o envio de mensagens em massa. Esse método oferece uma solução temporária para enviar mensagens pelo WhatsApp sem usar a API do WhatsApp Business, mas deve ser usado com cautela e consciência das limitações. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 diegocorreia4 Postado Agosto 1 Autor Denunciar Share Postado Agosto 1 Opa obg pela ajuda, vou fazer aqui, depois falo de deu certo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alyson Ronnan Martins Postado Agosto 1 Denunciar Share Postado Agosto 1 O Selenium é um pouco chatinho de usar mais funciona bem. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
diegocorreia4
Olá pessoal,
Tenho uma pasta com vários arquivos de holerite, que estão renomeados com a matrícula e nome do funcionario. Gostaria de enviar esses contracheques pelo whatsapp, pensei em enviar pelo excel através de VBA, será que é possivel fazer esse envio?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.