none
Excel - VBA - Ajuda em Código! RRS feed

  • Pergunta

  • Boa noite prezados!

    Estou com um problema e se possível, gostaria de ajuda.

    Eu estou tentando criar uma planilha para envio de arquivos, onde eu seleciono o arquivo e quero que esses arquivos sejam enviados por e-mail. Colocado o código, mas ele dá um erro, e mesmo diante várias horas de procura e pesquisa, não consegui solucionar, apresentando o erro " Erro inesperado. Era esperado End Sub"

    Segue o código:

    Private Sub CommandButton4_Click()
    Function EnviaEmail()
    Dim iMsg, iConf, Flds
    
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "meuemail@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "123456"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update
    
    With iMsg
       'Email do destinatário
       .To = Range("C5")
       'Seu email
       .From = "meuemail@gmail.com"
       'Título do email
       .Subject = "Nota Fiscal de Serviço"
       'Mensagem do e-mail, você pode enviar formatado em HTML
       .HTMLBody = "E-mail para envio de nota Fiscal"
       'Seu nome ou apelido
       .Sender = "FULANO DE TAL"
       'Nome da sua organização
       .Organization = "FULANO DE TAL INDUSTRIES"
       'e-mail de responder para
       .ReplyTo = "meuemail@gmail.com"
       'Anexo a ser enviado na mensagem. Retire a aspa da linha abaixo e coloque o endereço do arquivo
       .AddAttachment Range("C6")
       .AddAttachment Range("C7")
       .AddAttachment Range("C8")
       Set .Configuration = iConf
       .Send
    End With
    
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
    End Function
    
    Sub disparar()
       EnviaEmail
       MsgBox "O e-mail foi disparado com sucesso!", vbOKOnly, "e-mail enviado"
    End Sub

    O que será que pode está errado?

    Obrigado.


    • Editado ZéHenrique segunda-feira, 29 de abril de 2019 03:20 faltou a exposição do código
    segunda-feira, 29 de abril de 2019 03:19

Respostas

  • Olá,

    seu seu método estiver correto, basta alterar pra isso:

    Private Sub CommandButton4_Click()
      disparar
    end sub
    
    Function EnviaEmail()
    Dim iMsg, iConf, Flds
    
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "meuemail@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "123456"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update
    
    With iMsg
       'Email do destinatário
       .To = Range("C5")
       'Seu email
       .From = "meuemail@gmail.com"
       'Título do email
       .Subject = "Nota Fiscal de Serviço"
       'Mensagem do e-mail, você pode enviar formatado em HTML
       .HTMLBody = "E-mail para envio de nota Fiscal"
       'Seu nome ou apelido
       .Sender = "FULANO DE TAL"
       'Nome da sua organização
       .Organization = "FULANO DE TAL INDUSTRIES"
       'e-mail de responder para
       .ReplyTo = "meuemail@gmail.com"
       'Anexo a ser enviado na mensagem. Retire a aspa da linha abaixo e coloque o endereço do arquivo
       .AddAttachment Range("C6")
       .AddAttachment Range("C7")
       .AddAttachment Range("C8")
       Set .Configuration = iConf
       .Send
    End With
    
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
    End Function
    
    Sub disparar()
       EnviaEmail
       MsgBox "O e-mail foi disparado com sucesso!", vbOKOnly, "e-mail enviado"
    End Sub

    Abraço!


    Natan

    • Sugerido como Resposta LeonardoBastos segunda-feira, 29 de abril de 2019 18:46
    • Marcado como Resposta ZéHenrique quarta-feira, 1 de maio de 2019 15:14
    segunda-feira, 29 de abril de 2019 10:44

Todas as Respostas

  • Olá,

    seu seu método estiver correto, basta alterar pra isso:

    Private Sub CommandButton4_Click()
      disparar
    end sub
    
    Function EnviaEmail()
    Dim iMsg, iConf, Flds
    
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "meuemail@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "123456"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update
    
    With iMsg
       'Email do destinatário
       .To = Range("C5")
       'Seu email
       .From = "meuemail@gmail.com"
       'Título do email
       .Subject = "Nota Fiscal de Serviço"
       'Mensagem do e-mail, você pode enviar formatado em HTML
       .HTMLBody = "E-mail para envio de nota Fiscal"
       'Seu nome ou apelido
       .Sender = "FULANO DE TAL"
       'Nome da sua organização
       .Organization = "FULANO DE TAL INDUSTRIES"
       'e-mail de responder para
       .ReplyTo = "meuemail@gmail.com"
       'Anexo a ser enviado na mensagem. Retire a aspa da linha abaixo e coloque o endereço do arquivo
       .AddAttachment Range("C6")
       .AddAttachment Range("C7")
       .AddAttachment Range("C8")
       Set .Configuration = iConf
       .Send
    End With
    
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
    End Function
    
    Sub disparar()
       EnviaEmail
       MsgBox "O e-mail foi disparado com sucesso!", vbOKOnly, "e-mail enviado"
    End Sub

    Abraço!


    Natan

    • Sugerido como Resposta LeonardoBastos segunda-feira, 29 de abril de 2019 18:46
    • Marcado como Resposta ZéHenrique quarta-feira, 1 de maio de 2019 15:14
    segunda-feira, 29 de abril de 2019 10:44
  • Oi Natan, bom dia.

    Muito obrigado pela atenção e ajuda. Funcionou!

    Tenha uma excelente semana!

    Abraço man.

    At.te

    José Henrique

    quarta-feira, 1 de maio de 2019 15:14