Página 1 de 1

Enviar valores do excel por email (outlook) usando VBA

Enviado: 30 Jan 2017 às 12:38
por Valentw
Bom dia pessoal. Meu nome é Wellington e trabalho como estagiario de engenharia. Estou com uma dificuldade em resolver um problema num codigo VBA de uma planilha de ferias daqui do setor que eu trabalho.
A planilha é essa:
Imagem

45 dias antes do inicio das ferias do colaborador, precisamos solicitar a marcação de ferias no RH, logo o programa deve enviar para meu email os dados do colaborador que vai entrar de ferias como nome, data de inicio e fim das ferias.
até ai tudo bem, o programa ja ta feito. o unico problema eh que eu coloquei pra enviar o email quando a contagem dos dias zerassem e eh ai que ta o problema. a contagem é feita por uma formula no excel e não ta lendo no VBA. mas quando eu escrevo "0" na cedula, o programa funciona normal.
O programa é esse :
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim OutApp As Object
    Dim OutMail As Object
    Dim texto As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    linha = ActiveCell.Row - 1
    If Target.Address = "$G$" & linha Then

        If Plan1.Cells(linha, 7) = "0" Then
            texto = "CARO " & Plan1.Cells(linha, 1) & "," & vbCrLf & vbCrLf & _
                    "MARCAR FERIAS DE " & Plan1.Cells(linha, 3) & "," & vbCrLf & vbCrLf & _
                    "VEJA INFORMAÇÕES ABAIXO" & vbCrLf & _
                    "INICIO DAS FERIAS " & Plan1.Cells(linha, 4) & vbCrLf & _
                    "FIM DAS FERIAS " & Plan1.Cells(linha, 5) & vbCrLf & _
                    "MECHANICAL SHOP"
        End If

        With OutMail
            .To = Plan1.Cells(linha, 1)
            .CC = ""
            .BCC = ""
            .Subject = "MARCAR FERIAS"
            .Body = texto
            .Send
        End With
        On Error GoTo 0

        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
End Sub



estarei enviando a planilha pra vcs verem como funciona.
alguem poderia me ajudar?

Enviar valores do excel por email (outlook) usando VBA

Enviado: 31 Jan 2017 às 12:42
por Valentw
alguem:?:

Enviar valores do excel por email (outlook) usando VBA

Enviado: 31 Jan 2017 às 13:55
por Feka
O fato de ter fórmula não muda o que o VBA enxerga. Acontece que essa macro só roda quando ocorre um evento Change (Células atualizadas automaticamente não são consideradas). Segundo o seu código, a macro só vai rodar se você clicar em uma célula da coluna G e apertar o enter (Seu código exige que a célula ativa pule para a linha de baixo). Ou seja, basta você dá dois dois cliques onde está marcando zero e então apertar enter.