Notifications
Clear all

Macro de envio via Outlook de PDF [Resolvido]

7 Posts
3 Usuários
0 Reactions
1,557 Visualizações
(@gubirro)
Posts: 8
Active Member
Topic starter
 

Prezados,
Montei uma planilha com duas macros, a primeira para salvar a planilha ativa como pdf em uma pasta específica na rede do trabalho, segue abaixo:

Sub Salvando()

Dim Nome As String
Dim SDate As String
Dim MyLocal As String

MyLocal = "z:Coaut-URGINDEXAÇÃOCOAUT-TELETRABALHO"
Nome = Range("p7").Value

SDate = Now

If Nome <> vbNullString Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=MyLocal & Nome & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MsgBox "O arquivo " & Nome & " foi salvo em " & SDate & ".", vbOKOnly, "Salvo"

Else
MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo"

End If
End Sub

Essa funciona perfeitamente.
----------------------------------------------------------------------------------------------------------------------------------------------
A segunda macro seria para enviar a planilha ativa por email (via outlook) em formato pdf. Segue abaixo como ficou:

Sub eMailActiveWorkbook()

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)
Set Wb = ActiveWorkbook
Wb.Save
With EmailItem
.Subject = Range("p9").Value
.Body = "Prezado(a)s," & vbCrLf & "Enviando cota para " & Range("z4").Value & " (" & Range("P8").Value & ")" & vbCrLf & "Um abraço e bom trabalho!" & vbCrLf & " " & vbCrLf & "Cordialmente," & vbCrLf & "José Fernando" & vbCrLf & "Coordenador de Área" & vbCrLf & "Digitalização"

.To = Range("p10").Value
.Importance = olImportanceNormal
.Attachments.Add Wb.FullName
.Send

MsgBox "E-mail enviado com sucesso!", vbInformation, "Enviado"

End With

Application.ScreenUpdating = True

Set Wb = Nothing
Set OL = Nothing
Set EmailItem = Nothing

End Sub


Sub CommandButton2_Click()

Dim pasta As String
Dim nome_arquivo As String

pasta = Range("G1").Value

nome_arquivo = Range("A12") & ".xlsm"


    ActiveWorkbook.SaveAs Filename:=pasta & nome_arquivo, FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    
    MsgBox "Salvo com sucesso!" + Chr(13) + Chr(13) & nome_arquivo

End Sub[/color]

Essa envia automaticamente por email. Ficou excelente.
Porém ela envia o próprio arquivo em excel e preciso que ela envie somente o PDF da planilha ativa, (exatamente como a primeira macro faz, só que além de salvar na pasta da rede ela também enviaria esse pdf). Alguém pode me ajudar? Sou um pouco cru em VBA e fui fazendo um compilado de códigos da internet para chegar a essas duas macros. Mas nesse ponto eu travei.
Desde já agradeço,

 
Postado : 30/04/2018 3:57 pm
(@klarc28)
Posts: 971
Prominent Member
 
Sub eMailActiveWorkbook()

Dim OL As Object
Dim EmailItem As Object
Dim Wb As Workbook
MyLocal = "z:Coaut-URGINDEXAÇÃOCOAUT-TELETRABALHO"
Nome = Range("p7").Value

Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Wb = ActiveWorkbook
Wb.Save
With EmailItem
.Subject = Range("p9").Value
.Body = "Prezado(a)s," & vbCrLf & "Enviando cota para " & Range("z4").Value & " (" & Range("P8").Value & ")" & vbCrLf & "Um abraço e bom trabalho!" & vbCrLf & " " & vbCrLf & "Cordialmente," & vbCrLf & "José Fernando" & vbCrLf & "Coordenador de Área" & vbCrLf & "Digitalização"

.To = Range("p10").Value
.Importance = olImportanceNormal
.Attachments.Add MyLocal & Nome & ".pdf"
.Send

MsgBox "E-mail enviado com sucesso!", vbInformation, "Enviado"

End With

Application.ScreenUpdating = True

Set Wb = Nothing
Set OL = Nothing
Set EmailItem = Nothing

End Sub


Sub CommandButton2_Click()

Dim pasta As String
Dim nome_arquivo As String

pasta = Range("G1").Value

nome_arquivo = Range("A12") & ".xlsm"


ActiveWorkbook.SaveAs Filename:=pasta & nome_arquivo, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False


MsgBox "Salvo com sucesso!" + Chr(13) + Chr(13) & nome_arquivo

End Sub
 
Postado : 30/04/2018 5:23 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

gubirro,

Bom dia!

Seja muito bem vindo ao fórum.

Como você ainda é novato, para aproveitar ao máximo o fórum e sempre manter o mesmo de forma organizada, sugiro ler os tópico da regras abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Solicitamos ainda, por gentileza, quando postar códigos VBA aqui no fórum utilizar a ferramenta CODE que fica logo acima da caixa de mensagens (quinto botão da esquerda para a direita).

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 : 01/05/2018 7:38 am
(@gubirro)
Posts: 8
Active Member
Topic starter
 

Olá Wagner,
Desculpe e obrigado pela orientação. Será prontamente observada.
Abraço!

 
Postado : 02/05/2018 10:22 am
(@gubirro)
Posts: 8
Active Member
Topic starter
 

Olá klarc28! Obrigado pelo retorno.
Está acusando a mensagem de erro que: Não é possível localizar esse arquivo. Verifique se o caminho e o nome do arquivo estão corretos.

Ao depurar destaca a parte do .Attachments.Add MyLocal & Nome & ".pdf"

Estou fazendo algo errado?

 
Postado : 02/05/2018 10:29 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

gubirro,

Boa tarde!

Esse erro é em razão de que o VBA não está localizando o arquivo que você quer anexar para enviar. É necessário que você verifique a variável que está armazenando o caminho onde está o arquivo para saber se o mesmo está correto, de acordo onde realmente o arquivo foi salvo e se o nome do arquivo também está correto.

A melhor forma de ajudar, nesses casos, é você postar um pequeno exemplo do seu arquivo, aqui mesmo no fórum, compactado com .ZIP. Aí podemos rodar, depurar e achar facilmente o erro. Seu exemplo pode conter, por exemplo apenas duas linhas de dados, todavia deverá ser idêntico ao arquivo original (mesmo nome, mesmas abas, dados iniciando nas mesmas linhas/colunas, etc.

Mais um detalhe: Nas suas respostas, não há necessidade de você fazer citações de inteiro teor da mensagem que lhe foi enviada. Citações, quando estritamente necessárias ao entendimento da mensagem que se quer enviar, devem ser de apenas pequenos trechos da mensagem que nos foi enviada.

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 : 02/05/2018 11:00 am
(@gubirro)
Posts: 8
Active Member
Topic starter
 

Agora funcionou perfeitamente.
Obrigado mesmo!

 
Postado : 02/05/2018 1:26 pm