Ir para conteúdo
Fórum Script Brasil

Thay4591

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Thay4591

  1. Olá a todos.

    Estou estudando VBA a pouco tempo, e estou fazendo um projeto de planilha solicitando que os funcionários PJ emitam as notas.
    Eu preciso enviar para o funcionário um e-mail com valor a receber, referente ao dia dos serviços prestados, e quando ele deve emitir a nota. 

    O primeiro comando da programação é que SE a célula E ="valor" estiver vazia, não enviará o e-mail.
    Com a célula preenchida, ele seleciona o outlook app, coloca destinatário do e-mail, cc, título, imagem de corpo e texto.

    Porém eu preciso criar um novo SE - caso a célula G = "devolução" estiver preenchida, ele vai adicionar mais uma parte em texto ao corpo do e-mail.

    Não consigo fazer isso de jeito nenhum.
    Outro problema que tenho também é que ao colocar em Display, ele passa por todos os e-mails que precisam ser exibidos e termina no último e-mail, em uma unica aba. Exemplo, se eu tiver 10 e-mails pra mandar, ele vai exibir todos os emails rapidamente em uma guia só, e não abrir 10 guias;

     

    Coloco a programação aqui e a planilha em anexo para quem puder me ajudar.  
    (obviamente as imagens no corpo do e-mail não funcionarão pois estão apontando o caminho da minha máquina)

     

    Agradeço desde já

     

    Sub Enviar_Email()

    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.createitem(0)
    Dim png As String

    On Error Resume Next

    For linha = 1 To 5
    If Teste.Range("E" & linha + 4).Value <> "" Then
    With OutlookMail
      .To = Teste.Range("C" & linha + 4).Value
      .CC = "recursoshumanos@empresa.com" & " financeiro@empresa.com"
      .Subject = "NF | Trabalho PJ - " & Teste.Range("B" & linha + 4).Value
     
           png = ThisWorkbook.Sheets("PJ").Range("H" & linha + 4).Value
           
           texto1 = "<body style = font-size:12pt>" & "Olá " & Teste.Range("B" & linha + 4).Value & ", tudo bem?" & "<br>" & "Segue abaixo suas participações no período de: " & Teste.Range("D" & linha + 4).Value
           texto2 = "<body style = font-size:14pt>" & "Valor:<b><u> R$" & Teste.Range("E" & linha + 4).Value & ",00 </b></u>" & "<br>"
           texto3 = "<body style = font-size:12pt>" & "Estando corretas, favor me encaminhar a NF entre os dias <b><u> " & Teste.Range("F" & linha + 4).Value & "</b></u>."
           texto4 = "<body style = font-size:12pt>" & "Cumprindo acordo, estamos descontando <b>R$ " & Teste.Range("G" & linha + 4) & ",00 </b> do seu pagamento, tudo bem?"
           texto5 = "<body style = font-size:12pt>" & "Se precisar de mim, sigo a disposição." & "<br>" & "Abraços,"
           
                    
    .htmlbody = texto1 & "<br><br>" & "<img src=" & Chr(34) & png & Chr(34) & ">" & "<br><br>" & texto2 & "<br>" & texto3 & "<br><br>" & texto5
     .display
     
     
          End With
          End If
        Next linha
        
        On Error GoTo 0
        Set OutlookApp = Nothing
        Set OutlookMail = Nothing
           
    End Sub

     

    ------------

    Já tentei If Teste.Range("G" & linha + 4).Value = "" Then
    .htmlbody = texto1 & "<br><br>" & "<img src=" & Chr(34) & png & Chr(34) & ">" & "<br><br>" & texto2 & "<br>" & texto3 & "<br><br>" & texto5
     Else
    .htmlbody = texto1 & "<br><br>" & "<img src=" & Chr(34) & png & Chr(34) & ">" & "<br><br>" & texto2 & "<br>" & texto3 & "<br>" & texto4 & "<br><br>" & texto5

     

    E não foi... Sempre dá erro no With, no If, etc.

     

    ENVIEI UM GIF COM O PROBLEMA DO E-MAIL

    LInk pra Planilha: https://drive.google.com/file/d/1jpKBmdmnTMUIKZNx9I7pJI31vdpFgV8e/view?usp=sharing 

    New Recording - 08_06_2021 23_22_03.gif

×
×
  • Criar Novo...