1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Enviar emails automático a partir de um user form no Excel VBA

Estou criando um userform que receberá o nome, email do remetente, email do destinatário, assunto e a descrição do email. Criei também um botão para enviar esse email, já tenho todo o código que faz esse envio mas estou com o seguinte problema:

preciso determinar o intervalo onde o programa pegará esses campos que informei anteriormente, no caso esse intervalo não serão células mas sim os campos do userform, como posso fazer isso?

Segue abaixo os códigos de envio do email:

Public WrkB As Workbook 'Cria variavel da Pasta de Trabalho Public WrkS As Worksheet 'Cria variavel da Planilha

Public IntervaloMailing As Range 'Cria Variavel com o Intervalo do Mailing Public Celula As Range 'Cria Variavel com o registro do Mailing

Public AppOutk As Outlook.Application 'Cria Variavel com a Aplicacao do Outlook Public MailOutk As Outlook.MailItem 'Cria Variavel com o objeto "Email" do Outlook

Public Sub MandarEmail()

Set WrkB = ThisWorkbook 'Define a pasta de Trabalho Set WrkS = WrkB.Sheets("Mailing")'Define a Planilha com os dados

Set IntervaloMailing = WrkS.Range("UserForm1") 'Define qual o intervalo do Mailing

With WrkS .Select For Each Celula In IntervaloMailing Call CriaEmail 'Chama a Rotina para Criar o Email Next End With

End Sub

Sub CriaEmail()

Set AppOutk = New Outlook.Application 'Define a aplicação do Outlook Set MailOutk = AppOutk.CreateItem(olMailItem)'Define o objeto "Email" da Aplicação Outlook

With MailOutk .Display .To = UserForm1.TextDestino.Value 'Coluna Para .CC = UserForm1.TextCopia.Value 'Coluna Com Cópia 'Coluna Copia Oculta .Subject = UserForm1.ComboBox1.Value 'Coluna Assunto .Body = UserForm1.TextDescricao.Value 'Coluna Corpo do Email .Display .Send End With

Set MailOutk = Nothing'Esvazia a variavel Set AppOutk = Nothing'Esvazia a variavel ThisWorkbook.Application.Quit

End Sub

Tentei inserindo o nome do user form na variável "intervalo mailing" mas o erro persiste. Poderiam me ajudar?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags vba excel ou faça a sua própria pergunta.