Enviar e-mail para vários usuários da tabela do Excel

0

Eu tenho que enviar vários emails para alguns usuários de uma tabela do Excel. Minha tabela contém vários usuários e para cada um deles tenho alguma linha com algumas ações.

        action              user
        ===============     =====
row1    lore ipsum 1        user1
        lore ipsum 2        
        lore ipsum 4        
        lore ipsum 5        
row2    lore ipsum 3        user2
        lore ipsum 1        
row3    lore ipsum 2        user3

É uma tabela dinâmica e tudo o que preciso fazer é enviar a cada usuário um email desse tipo:

Olá "" usuário "", você tem essas ações neste mês:

"" lore ipsum1 "" "" lore ipsum2 "" "" lore ipsum3 ""

Sei que poderia usar o Word para fazer isso, mas não consigo adicionar várias ações para os usuários que possuem mais de uma linha. Como posso fazer isso? obrigado

Lc0rE
fonte
relacionado
Raystafarian 20/07
Dê uma olhada neste site para ver o que você pode ser capaz de chegar a
Raystafarian
Não é possível que sua tabela dinâmica imprima uma linha para cada usuário, com 'lore ipsum x' o valor de cada coluna subseqüente nessa linha? (depende de quantos tipos diferentes de lore ipsums existem, eu acho). Caso contrário, uma macro que faz um loop até encontrar o próximo usuário fará isso.
Mcalex
Qual é o seu cliente de email? perspectiva? Qual versão do excel?
Raystafarian

Respostas:

0

Use o VBA no Excel para enviar e-mails (se você tiver o Outlook instalado)

Este exemplo está assumindo uma tabela simples do Excel neste formato.
insira a descrição da imagem aqui

Sub SendMailsFromList()
    Dim objOutlook As Object
    Dim objMail As Object
    Dim i As Integer

    Set objOutlook = CreateObject("Outlook.Application")

    With ActiveSheet
         For i = 2 To .Columns(1).Find("*", [A1], , , xlByRows, xlPrevious).Row

            Set objMail = objOutlook.CreateItem(0)
            objMail.To = CStr(.Cells(i, 1))
            objMail.Subject = .Cells(i, 2)
            objMail.Body = .Cells(i, 3)
            objMail.Send
            Set objMail = Nothing

        Next i
    End With

    Set objOutlook = Nothing
End Sub
  1. Configure sua tabela de dados como a captura de tela está sendo exibida
  2. Abra o editor Excels VBA com Alt+F11
  3. Copie e cole o código acima em algum lugar
  4. Volte ao Excel e execute a macro com Alt+F8

Você também pode preencher CC, BCC ou usar assinaturas diferentes, se desejar. Se pudermos dar uma olhada mais de perto na sua tabela dinâmica, o código poderá ser modificado para funcionar com sua pasta de trabalho.

Recursos usados

nixda
fonte