5W2H – Envio por email das pendências – VBA e Outlook

Planilha VBA Pomodoro - Técnica para Organização do Tempo
Planilha VBA Pomodoro – Técnica para Organização do Tempo
12 de abril de 2011
GUT - Técnica para definir prioridades em tomadas de decisões - Excel
GUT – Técnica para definir prioridades em tomadas de decisões – Excel
18 de abril de 2011

5W2H – Envio por email das pendências – VBA e Outlook
Objetivo: Demonstrar a aplicação do método 5W2H e a automatização do envio das tarefas em atraso através do uso de VBA e do Outlook.

A técnica 5W2H é basicamente um formulário para execução e controle de tarefas onde são atribuídas as responsabilidades e determinado como o trabalho deverá ser realizado, assim como o departamento, motivo e prazo para conclusão com os custos envolvidos. A sigla significa:

 

  • 1 – What (o que será feito),
  • 2 – Who (quem fará),
  • 3 – When (quando será feito),
  • 4 – Where (onde será feito),
  • 5 – Why (por que será feito)
  • 1 – How (como será feito)
  • 2 – How Much (quanto custará)

O desenvolvimento deste controle começa com reuniões aonde são analisados os problemas e são definidas tarefas para as soluções das tarefas. Nesta planilha são definidos os prazos e estes devem ser controlados por alguém da equipe, o andamento das atividades são apresentados nas reuniões de acompanhamento. A planilha deste artigo tem por função permitir que o controle dos prazos seja realizado de uma forma muito prática. Com a definição dos prazos e a digitação dos emails dos responsáveis a planilha automaticamente ao ser aberta questionará se gostaria de enviar email com as atividades atrasadas para os responsáveis através do Outlook. Para utilizar esta planilha é necessário que o seu Outlook esteja configurado. Abaixo o código:

'Enviar email
Sub Enviar_email(ByVal lEndereco As String, ByVal lTarefa As String)
    Dim enderecos As Range
    Dim celula As Range
    Dim anexo As String
    Dim r As Integer
    Dim fim
    Dim enviar
    Dim objOlAppApp As Outlook.Application
    Dim objOlAppMsg As Outlook.MailItem
    Dim objOlAppRecip As Outlook.Recipient
    Dim objOlAppAnexo As Outlook.Attachment

    'Criar objeto do outlook
    Set objOlAppApp = CreateObject("Outlook.Application")
    Set objOlAppMsg = objOlAppApp.CreateItem(olMailItem)

    With objOlAppMsg
        'Email do destinatário
        Set objOlAppRecip = .Recipients.Add(lEndereco)
        objOlAppRecip.Type = olTo
        'Grau de importância do email
        .Importance = olImportanceHigh
        'Cabeçalho do email
        .Subject = "5W2H - Pendência em atraso " & lTarefa & " em " & Format(Now, "dd-mmm.yyyy hh:mm:ss")
        'Texto do email
        .Body = "A tarefa " & lTarefa & " está em atraso, por favor verifique."
        'Enviar email
        .Send
    End With

    'Liberar variáveis
    Set objOlAppApp = Nothing
    Set objOlAppMsg = Nothing
    Set objOlAppAnexo = Nothing
    Set objOlAppRecip = Nothing
End Sub

'Enviar emails das pendências
Sub lsEnviarAtrasos()
    Dim iTotalLinhas    As Long
    Dim i               As Long
    Dim lHoje           As Date

    Worksheets("5W2H").Select
    Cells(2, 1).Select

    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1

    i = 2

    While i <= iTotalLinhas
        If Cells(i, 6).Value <= Range("K1").Value Then
            Enviar_email Cells(i, 10).Value, Cells(i, 3).Value
        End If
        i = i + 1
    Wend
End Sub

'Enviar emails e fechar aplicação
Sub lsValidaEnvio()
    If MsgBox("Deseja verificar as pendências e enviar por email?", vbYesNo, "5W2H") = vbYes Then
        lsEnviarAtrasos
    End If
End Sub

Para aplicá-la em outra planilha é necessário setar a referência abaixo, clicando na guia Desenvolvedor, no botão Visual Basic e clicando no menu Ferramentas->Referências.

 

 

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

45 Comentários

  1. henrique disse:

    Excelente Planilha. Utilizo essa ferramenta diariamente na empresa em que eu trabalho.
    No entanto aqui utilizamos o Lotus note. Ja tentei converter esse código para ser compátivo com o Lotus notes, mas literamente estou apanhando e feio do vba. Poderia me ajudar?

  2. Walter Bernal disse:

    No meu office está ausente esse arquivo.

    O que fazer?

  3. Walter Bernal disse:

    Marcão,

    Obriagado pela ajuda, usei a versão Microsoft Outlook 12.0 object library para Office 2007 e funcionou certinho!!!

    Mais uma vez obrigado!

  4. Jedi Nakonieczni disse:

    Marcão, e se eu quiser enviar a mesma tarefa para vários destinatários, como eu faço?

  5. Marcos, tentei copiar o código para outra planilha fazendo exatamente como você menciona, setando a referência no VBA, porém toda vez que clico em sim quando sou solicitado se desejo ou não enviar as pendências recebo uma mensagem de “erro de tempo de execução” – “deve haver ao pelo menos um nome ou grupo de contatos na caixa Para, Cc ou Cco”.
    O e-mail é encaminhado se clico em depurar, mas gostaria de saber como fazer para eliminar tal ocorrência.
    Obrigado.

  6. […] Esta tabela de controle dos planos de ação pode ser utilizada também com o envio automático de e-mails ao chegar ao limite da entrega. Veja o artigo em http://guiadoexcel.com.br/5w2h-envio-por-email-das-pendencias-vba-e-outlook. […]

  7. Marcos, como faço para acrescentar novas tarefas a serem analizadas quando abro a planilha? Pelo pouco que entendo de vba vi parece que trata apenas da primeira linha da planilha, pois se puser algo na segundo esta não é enviada por email.
    Obrigado e aguardo sua resposta.

  8. Kleber disse:

    Caro Marcos, estou tendo exatamente o mesmo problema do nosso caro amigo Valderei dos Santos em sua postagem de 19 de maio. Gostaria de saber qual alteração deve ser feita para esta correção.
    Grato e no aguardo,
    Abs

  9. Kleber disse:

    Bom, o cod On Error Resume Next resolve se o Outlook estiver aberto. Acontece como o Valderei falou, se depurar ele envia, mas ainda não consegui entender o que está faltando. Continuo no aguardo,
    Abs!

    • Marcos Rieper disse:

      Boa tarde Kleber,

      Obrigado pelo comentário, vamos ver o que podemos fazer por você. Qual exatamente o erro que está ocorrendo, pode nos passar o texto que está sendo mostrado no erro?

      Abraço

      Marcos Rieper

  10. Kleber disse:

    Bom dia Marcos,
    Conforme solicitado segue a mensagem de erro: “erro de tempo de execução” – “deve haver ao menos um nome ou grupo de contatos na caixa Para, Cc ou Cco”. Se você manda depurar, o e-mail é enviado. Em um primeiro momento, para que fosse possível enviar sem receber a mensagem, o cod ‘On Error Resume Next’ resolve, mas queria poder utilizar o código da forma correta. Grato mais uma vez, fico no aguardo.
    Abs e parabéns pelo site!

  11. Wendel disse:

    Bom dia Marcos,

    Eu uso o Lotus para email, tenho algumas planilhas de atividade e controles e gostaria de toda vez quando a data da atividade chegue, encaminhe um email avisando que a data chegou…. como posso executar esta função no excel

  12. Kedley disse:

    Como faço para enviar outros campos da planilha ? por exemplo como? quanto etc ?

  13. Bom dia Marcos, será que você pode ajudar a mim e também ao nosso amigo Kleber? Já troquei várias vezes o código e continua com o mesmo problema. Conforme mencionado pelo Kleber se clicar em depurar o e-mail é enviado, mas os outros usuários da planilha acabam sempre reclamando disso e muitos deles não tem conhecimento algum em Excel. Obrigado e aguardamos teu comentário.

  14. Olá,
    Vc tem o arquivo com o código para Lotus Notes?
    Obrigado.

  15. Adriano Souza disse:

    Marcos, tentei copiar o código para outra planilha fazendo exatamente como você menciona, setando a referência no VBA, porém toda vez que clico em sim quando sou solicitado se desejo ou não enviar as pendências recebo uma mensagem de “erro de tempo de execução” – “deve haver ao pelo menos um nome ou grupo de contatos na caixa Para, Cc ou Cco”.
    O e-mail é encaminhado se clico em depurar, mas gostaria de saber como fazer para eliminar tal ocorrência.
    Obrigado.

  16. Edgar Gomes disse:

    Excelente idéia! No entanto, percebo que existe uma dificuldade commum a maioria dos leitores em relação ao erro apresentado; somente após depurado o e-mail é disparado.
    Existe alguma forma de corrigi-lo???

  17. Marcos Rieper disse:

    Bom dia, obrigado pelo aviso do problema. O mesmo foi corrigido e podem baixar novamente o arquivo.

    Abraço

    Marcos Rieper

  18. Felipe Stanev disse:

    Marcos, boa tarde!

    Como faço para alterar o texto automático que está inserido no e-mail?
    Não sei onde devo colar o código enviado.

    Um abraço!

  19. Claudio disse:

    Boa tarde parceiro,
    Tenho 2 dúvidas:
    1 – Utilizando a função “SE” eu defino que uma célular exibe “Atrasado” quando a data limite for atingida. Porém o VBa não identifica o conteúdo. Ou então utilizando lista suspensa.
    Porém quado eu digito, manualmente, “Atrasado” ele entende e cumpre os comandos de envio do email certinho. Como faço para ele identificar o conteúdo mesmo sendo pela função ou pela lista suspensa?
    2 – No corpo do email, como eu faço para ser exibido na mensagem a ser enviada algumas informações em negrito?

    No aguardo,
    Claudio

    • Marcos Rieper disse:

      Boa tarde Cláudio,

      A data que é utilizada para verificar se está atrasada a tarefa é a data da coluna Quando em comparação com o conteúdo da célula K1.

      Para colocar uma parte da mensagem em negrito você deve alterar a linha subject e colocar entre e o conteúdo a colocar em negrito.

      Abraço

      Marcos Rieper

  20. thiago felipe disse:

    Pessoal,

    Gostaria de testar está ferramenta, porém não estou conseguindo achar a planilha para fazer o download.

  21. SAMUEL disse:

    Prezados,

    Estou com um problema. Para executar essa macro preciso habilitar a Biblioteca do Outlook, correto? Contudo, a biblioteca disponível no Excel é a Microsoft Outlook Object 15,0 Library, sendo a versão do outlook é 14,0. O que faço?

  22. Wagner disse:

    Como faço para alterar as células que contem a tarefa e e-mail da pessoa? Gostaria de usar o mesmo código para uma planilha de ações que tenho.

  23. erbarreto disse:

    Vc é doidão mesmo Marcos!! rsrsrs Parabéns!!

  24. Bruno disse:

    Boa tarde Marcos,

    Tratando-se do exemplo acima, consigo inserir o comando para que a macro execute automaticamente?
    Sabes me dizer, caso haja aquela mensagem de segurança do outlook para o envio, o que fazer para que ele envie sem eu precisar permitir?

    Desde já agradeço, e parabenizo pelo excelente site.

  25. Alexandre disse:

    Boa tarde !

    Será que é possível através de uma planilha do Excel enviar e-mails pelo Gmail direto pelo navegador ?

    Pois hoje o Outlook limita o envio de 100 por dia e Gmail eu consigo enviar para os meus 350 contatos.

    Aguardo retorno, obrigado !

  26. CARLOS VIAL disse:

    Parabéns pelo site!
    Antes de tudo é bom e merecedor de elogios”
    Sou estagiário e suas dicas valem ouro pra conseguir uma promoção. Sou mto grato!
    Tem me ajudando muito as dicas.

    Gostaria de fazer um 5w2h porém utilizando gmail ou o outlook.com ( não o software, e sim o outlook pela web)

    Muito Obrigado!
    se tiver uma dica me ajudaria demais!

    • Marcos Rieper disse:

      Olá Carlos,

      Muito obrigado pelo seu contato e elogios, fico muito feliz.

      Sobre a sua dúvida, é necessário alterar a planilha para que ela trabalhe desta outra forma, vou anotar para colocar na lista de a fazeres. =D

      Abraço
      Marcos Rieper

  27. Vitor Almeida disse:

    Olá Marcos,

    Excelente conteúdo,
    Todavia não consegui fazer a macro funcionar pois, aparece o seguinte erro:
    É impossível localizar o Projeto ou a biblioteca e o campo: Dim objOlAppApp As Outlook.Application fica amarelo…
    O que pode ser?

  28. Anderson disse:

    Marcos, parabéns pela iniciativa e pelo site, é extremamente útil.
    Embora esse post já seja um pouco antigo e já ter visto algumas coisas similares, creio que não atendem o que eu estou precisando:
    Tenho uma lista de documentos que preciso gerenciar, os mesmos tem validade e são passíveis de renovação. Gostaria de saber se é possível programar a planilha para que, com 30 dias de antecedência do vencimento de um documento, seja enviado um e-mail para os responsáveis pelo processo alertando sobre esse prazo e listar o nome das pessoas que devem ter esses documentos renovados, atendendo à essa regra dos 30 dias de antecedência.

    Obrigado.

  29. Renato Silva Vivo disse:

    Boa tarde Marcos Riepper, quando tento colocar mais de um email separado por virgula a macro apresenta o seguinte erro “Erro em tempo de execução – 2147467259 (80004005) – O Outlook não reconhece um ou mais nomes.
    Tentei separar por ; porém apresentou o mesmo erro. A macro sempre para .Send, tem alguma ideia do que possa ser?

  30. Gabriel Torga disse:

    Boa tarde Marcos,

    O erro que aparece no meu é
    “Erro de automação”
    “Erro não especificado”

    Eu peguei o seu código colei e coloquei a referência, do Outlook, somente

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.