Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#592
Claudio, como nas mensagens anteriores, acredito que deve ter passado despercebido os avisos.

Todos os anexos neste fórum devem ser compactados antes de serem enviados. Por favor, envie novamente, compactado.
#594
Reescrevi a macro, substitua seu código por esse abaixo:
Código: Selecionar todos
Sub EnviarEmail()
'Escrito por Laennder (gurudoexcel.com/forum)

    Dim sTO     As String   'Destinatario
    Dim sCC     As String   'Destinatário Cópia
    Dim sMEs    As String   'Mês
    Dim sNome   As String   'Nome do Cliente
    Dim dValor  As Double   'Valor Devido
    Dim i       As Integer  'Contador
    Dim Total   As Integer
    Dim Qty     As Integer
    Dim sht     As Worksheet
    
    'Defina a planilha onde estão os dados
    Set sht = Plan4
    
    sMEs = InputBox("Digite o mes referente as refeições: exemplo 'Abril/2015' ", _
                        "Mês referente", UCase(Format(Date - 1, "MMMM") & "/" & Format(Date - 1, "YYYY")))
    
    Qty = WorksheetFunction.CountA(Plan1.Columns(1))
    

    For i = 2 To Qty
        
        sNome = sht.Cells(i, 1)   'Coluna 1 (A)
        dValor = sht.Cells(i, 27) 'Coluna 27 (AA)
        sTO = sht.Cells(i, 2)     'Coluna 2 (B)
        sCC = "c.tavares@uol.com.br"
        
        If sTO <> "" And dValor > 0 Then
        
            'Enviar email
            Dim oOutlookApp     As Object
            Dim oOutlookMessage As Object
            Dim ns              As Outlook.Namespace
            Dim Folder          As Outlook.MAPIFolder
        
            'Instacia os objetos
            Set oOutlookApp = New Outlook.Application
            Set oOutlookMessage = oOutlookApp.CreateItem(olMailItem)
            Set ns = oOutlookApp.GetNamespace("MAPI")
            Set oOutlookApp = ns.GetDefaultFolder(olFolderInbox)
            
            oOutlookMessage.HTMLBody = "<p>Prezado(a) " & sNome & ", </p>" _
            & "<p>O valor total das suas refeições em " & sMEs & " foi de R$: " & Format(dValor, "#,##0.00") & "</p>" _
            & "Atenciosamente, "
            
            With oOutlookMessage
            .Subject = "Valor de Suas Refeições"
            .to = sTO
            .CC = sCC
            '.Display
            .Send
            End With
            
            oOutlookApp.Quit
            Set oOutlookApp = Nothing
            'fim do envio do email
            
            'Aumenta o contador
            Total = Total + 1
        
        End If
    
    Next i
    
    MsgBox "Processo finalizado" & Chr(13) & "Total de emails enviados: " & Total, vbInformation, "AVISO"

End Sub

Lembre-se de definir a referência a sua versão do Outlook. No VBE, clique em Ferramentas → Referências, e marque a versão que está utilizando, no meu caso foi o Outlook 15.0

Imagem
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord