Note: The other languages of the website are Google-translated. Back to English

Como enviar um email pelo Outlook quando a pasta de trabalho é salva no Excel?

Este artigo fala sobre o envio de um e-mail pelo Outlook quando uma pasta de trabalho específica é salva no Excel. Faça como mostra o tutorial.

Envie um e-mail pelo Outlook quando a pasta de trabalho for salva com o código VBA


Envie um e-mail pelo Outlook quando a pasta de trabalho for salva com o código VBA


Para enviar um e-mail pelo Outlook quando a pasta de trabalho for salva no Excel, faça o seguinte.

1. Primeiro salve a pasta de trabalho como uma pasta de trabalho habilitada para macros do Excel. Clique Envie o > Salvar como. No Salvar como caixa de diálogo, selecione uma pasta para salvar a pasta de trabalho, nomeie-a na caixa Nome do arquivo, selecione Pasta de trabalho habilitada para macro do Excel de Salvar como tipo lista suspensa e clique no Salvar botão. Veja a imagem:

2. Abra a pasta de trabalho habilitada para macro do Excel que você salvou agora, pressione o botão outro + F11 simultaneamente para abrir o Microsoft Visual Basic para Aplicações janela.

2. No Microsoft Visual Basic para Aplicações janela, por favor clique duas vezes Esta pasta de trabalho na barra esquerda, copie e cole o código VBA abaixo no Esta pasta de trabalho janela de código. Veja a imagem:

Código VBA: enviar e-mail quando a pasta de trabalho for salva

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Importante: Substitua o Email com o endereço de e-mail do destinatário alinhado .To = "Endereço de e-mail"e altere os campos Cc, Assunto e corpo no código VBA conforme necessário.

3. aperte o outro + Q simultaneamente para fechar o Microsoft Visual Basic para Aplicações janela.

A partir de agora, quando você atualizar a pasta de trabalho e salvá-la, um e-mail será criado automaticamente com a pasta de trabalho atualizada anexada. Por favor clique no ENVIAR botão para enviar o e-mail. Veja a imagem:

Importante: O código VBA só funciona quando você usa o Outlook como seu programa de e-mail.


Artigos relacionados:


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (17)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Como automatizar a notificação por email no VBA com base no intervalo de datas, sem precisar ver o pop-up de permissão de segurança para permitir que o VBA envie o email.
Este comentário foi feito pelo moderador no site
Gracias. Consulta: Usando esta misma rutina, como podría enviar o correo a um correo específico dependendo do valor de otra celda?
Este comentário foi feito pelo moderador no site
Prezados, gostaria de perguntar como anexar link funcional a determinada pasta no servidor, se eu colar o link, ele aparece na pasta de trabalho como texto simples e por isso não funciona no e-mail recebido, como posso transformá-lo em link, para que os destinatários possam clicar nele?
Eu gostaria de usar essa maneira em vez de enviar o arquivo excel incluído.
Obrigado pelo conselho
Este comentário foi feito pelo moderador no site
Oi Robert,
Desculpe não poder ajudar com isso, bem-vindo para postar qualquer pergunta sobre o Excel em nosso fórum: https://www.extendoffice.com/forum.html. Você obterá mais suportes do Excel de nossos profissionais ou outros fãs do Excel.
Este comentário foi feito pelo moderador no site
Coloquei isso no corpo do e-mail e funcionou para mim ...
"arquivo:///Z:\dir1\dir2\dir3\Test1.xlsm"
Este comentário foi feito pelo moderador no site
Olá, belo artigo! Uma coisa que tenho tentado alcançar com isso é anexar o estado atual da pasta de trabalho ao e-mail.

No momento, ele envia apenas o estado original do arquivo e não inclui nenhuma alteração que o usuário tenha feito.

Alguma idéia de como implementar isso usando uma macro?
Este comentário foi feito pelo moderador no site
Oi Cris,
O código foi atualizado com o problema resolvido, por favor, tente. Obrigado pelo seu comentário.
Este comentário foi feito pelo moderador no site
Oi Cris,

Eu me deparei com o mesmo problema.
Atualmente os códigos são utilizados no módulo "beforesave".
O que significa que o e-mail enviará a planilha que está antes salva.

Existe um outro módulo "aftersave".
Eu apliquei o código neste módulo e funcionou como um encanto.
Este comentário foi feito pelo moderador no site
Como isso seria tratado para um documento do Office 365. Ele está salvando automaticamente.
Este comentário foi feito pelo moderador no site
Existe uma maneira de fazer com que o e-mail automatizado seja criptografado automaticamente?
Este comentário foi feito pelo moderador no site
Olá Mike,
Desculpe não pode ajudar a resolver este problema. Obrigado pelo seu comentário.
Este comentário foi feito pelo moderador no site
Oi! Muito obrigado por esta diretriz :-) Eu gostaria de fazer algo mais neste código - envie um e-mail com base nos países. Isso significa que eu tenho que criar comandos com if e select. Direita? Já excluí o anexo do e-mail. Eu gostaria de adicionar o link com o caminho na pasta. Mas quando a macro é executada, o comando não é válido :-(
Agradeço cada ajuda como adicioná-lo lá.
Este comentário foi feito pelo moderador no site
Olá - Como posso incluir dados do celular no campo "cc" do e-mail?
Este comentário foi feito pelo moderador no site
Oi Brent
Supondo que você queira incluir o valor na célula a7 no campo "cc" do email, tente o VBA abaixo.

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

'Atualizado por Extendoffice 20200628

Dim xOutApp como objeto

Dim xMailItem como objeto

Dim xName As String

On Error Resume Next

Set xOutApp = CreateObject("Outlook.Application")

Definir xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

Com xMailItem

.To = "Endereço de e-mail"

.CC = Range("a7").Value


.Subject = "A pasta de trabalho foi salva"

.Body = "Oi," & Chr(13) & Chr(13) & "Arquivo agora atualizado."

.Anexos.Adicionar xName

.Exibição

'.mandar

Terminar com

Definir xMailItem = Nada

Definir xOutApp = Nada

End Sub
Este comentário foi feito pelo moderador no site
Prezados, alguém pode me ajudar, sou iniciante em codificação VBA, fiz algumas modificações, mas como faço para enviar e-mail se a pasta de trabalho estiver salva e se o nome de usuário for diferente, como se o nome de usuário de a estação é glade2 então envie e-mail se a pasta de trabalho for salva, senão não envie.

Muito obrigado pelo seu apoio
Este comentário foi feito pelo moderador no site
Olá florin,
Não entendi seu ponto. O que seu nome de usuário representa?
Este comentário foi feito pelo moderador no site
Oi cristal, obrigado pela sua resposta, usernane é usernane de ambiente, e eu fiz isso, usei uma função if e exit sub.
Muito obrigado.
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0  Personagens
Locais sugeridos