Notifications
Clear all

Enviar Relatorio em PDF por e-mail

5 Posts
3 Usuários
0 Reactions
1,336 Visualizações
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

Boa tarde.

Pessoal(Wagner) hehehehe.... Peguei o codigo que voce colocou como exemplo a uns topicos abaixo.
está funcionando perfeitamente mais gostaria de saber se é possivel colocar uma caixa de dialogo para informar o e-mail que deseja que o relatorio seja enviado.

Segue Codigo vou marcar onde desejo que apareça a caixa de dialogo para inserir o e-mail desejado.

Desde já agradeço!

Private Sub bt_email_Click()
Worksheets("Relatorio").Select
Application.ScreenUpdating = False
    Range("B4:G6018").Select
    Selection.Copy
    Sheets("email").Select
    Range("B4").Select
    ActiveSheet.Paste

    '========================================================
    'Essa macro requer que sejam acrescentadas as referências
    'Microsoft Outlook 12.0 (ou maior) Object Library
    'Microsoft Scriping Runtime
    '========================================================

    Dim OL As Object
    Dim EmailItem As Object
    Dim Wb As Workbook
    
    Application.ScreenUpdating = False
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)
    ActiveSheet.UsedRange.Select
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ActiveWorkbook.Path & "Temp.pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
        :=False
    
    With EmailItem
        .Subject = "Relatorio dos projetos"
        .Body = "Segue anexo seus projetos para avaliação." & vbCrLf & _
        "" & vbCrLf & _
        "Obrigado!"
      [color=#FF0040] [b][size=150] .To = "AQUI abrir uma caixa de dialogo para poder colocar o email desejado" 'Destinatário do email[/size][/b][/color]
        .CC = "AQUI ficar um fixo mesmo" 'Destinatários em cópia
        .Importance = olImportanceNormal
        .Attachments.Add ActiveWorkbook.Path & "Temp.pdf"
        .Send
        
        MsgBox "RELATÓRIO ENVIADO COM SUCESSO!", vbInformation, "ENVIADO"
    End With
    
    
    Application.ScreenUpdating = True
    
    Set Wb = Nothing
    Set OL = Nothing
    Set EmailItem = Nothing

    Range("B4:G6018").Select
    Selection.EntireRow.Delete
    
    Sheets("Relatorio").Select
    Range("B4").Select
    
    Application.ScreenUpdating = True
     
End Sub

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 20/04/2017 9:37 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Romanha,

Boa tarde!

Anexe a planilha completa aqui.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 20/04/2017 10:51 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Tenta agora:

Private Sub bt_email_Click()
Worksheets("Relatorio").Select
Application.ScreenUpdating = False
    Range("B4:G6018").Select
    Selection.Copy
    Sheets("email").Select
    Range("B4").Select
    ActiveSheet.Paste

    '========================================================
    'Essa macro requer que sejam acrescentadas as referências
    'Microsoft Outlook 12.0 (ou maior) Object Library
    'Microsoft Scriping Runtime
    '========================================================

    Dim OL As Object
    Dim EmailItem As Object
    Dim Wb As Workbook
    
    Application.ScreenUpdating = False
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)
    ActiveSheet.UsedRange.Select
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ActiveWorkbook.Path & "Temp.pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
        :=False
    
    With EmailItem
        .Subject = "Relatorio dos projetos"
        .Body = "Segue anexo seus projetos para avaliação." & vbCrLf & _
        "" & vbCrLf & _
        "Obrigado!"
        .To = InputBox("Insira o e-mail desejado!", "E-mail") 'Destinatário do email[/size][/b][/color]
        .CC = "AQUI ficar um fixo mesmo" 'Destinatários em cópia
        .Importance = olImportanceNormal
        .Attachments.Add ActiveWorkbook.Path & "Temp.pdf"
        .Send
        
        MsgBox "RELATÓRIO ENVIADO COM SUCESSO!", vbInformation, "ENVIADO"
    End With

End Sub

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 20/04/2017 11:10 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Não tinha visto que era o mesmo arquivo que eu havia enviado no tópico de outro usuário.

Fiz as modificações para que o endereço de email seja solicitado a partir de uma caixa de diálogo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 20/04/2017 11:17 am
(@romanha)
Posts: 104
Estimable Member
Topic starter
 

Obrigado a todos!!

A dica dos dois funcionam perfeitamente como quero.

Se a resposta foi últil, gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. canto superior.

" Aquele que habita no esconderijo do Altissimo, à sombra do Onipotente descansará. Salmos 91:1"

Atenciosamente.

Jason Romanha

 
Postado : 20/04/2017 11:59 am