Bom dia,
Amigos eu tenho um indicador com várias abas representando um supervisor cada, no botão gerar relatório eu gostaria que convertesse cada aba (exceto menu e colgate palmolive) e enviasse por email... detalhe cada aba (já convertida em pdf irá para um endereço de email diferente.
O código atual é enviado para o gerente de vendas mandando o arquivo inteiro em excel... e estou com bastante dificuldade para transformar esse codigo afim de atender minha necessidade, alguém poderia me ajudar?
Segue arquivo em anexo.
Mto obg aos que se dispuserem a ajudar.
Boa tarde!!
Esse assuntos já foram demonstrados antes, use a pesquisa do forum!
Para anexar os arquivos via emails, leia: https://www.rondebruin.nl/win/s1/outlook/saveatt.htm
Sub Criar_PDF() Dim ws As Worksheet Dim Fname As String For Each ws In ActiveWorkbook.Worksheets On Error Resume Next 'Cuidado com os nomes(para a variável >>> Fname) das guias, para mais informações leia: 'https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx Fname = "C:UsersAleVBADownloads" & ws.Name ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=Fname, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False Next ws End Sub
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Alexandre,
o código para criar pdf deu certo, entretanto o link que mandou não foi mto claro este orienta a incluir o código no proprio outlook... me deixou foi mais confuso.
Eu preciso que ao gerar pdf (com o código que me enviou) a macro envie automaticamente o mesmo pdf via email (não se faz necessário salvar este pdf como backup já que estaria enviando por email, mas se não for possível que salve em uma pasta criada na área de trabalho). Isso é possível?
Desde já mto obg por sua atenção.
Boa tarde!!
Veja se ajuda.
Você pode ter apenas uma variável ao invés de (Fname, StrFile).
Cuidado ao apontar o diretório, eu recomendo fazer uma cópia de reserva dentro de um diretório a parte.
Sub AleVBA_26270() Dim ws As Worksheet Dim Fname As String Dim mess_body As String, StrFile As String, StrPath As String Dim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem For Each ws In ActiveWorkbook.Worksheets On Error Resume Next 'Cuidado com os nomes(para a variável >>> Fname) das guias, para mais informações leia: 'https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx Fname = "C:UsersalevbaDownloads" & ws.Name ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=Fname, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False Next ws Set appOutLook = CreateObject("Outlook.Application") Set MailOutLook = appOutLook.CreateItem(olMailItem) 'Altere esse caminho StrPath = "C:UsersalevbaDownloads" With MailOutLook .BodyFormat = olFormatRichText .To = "alevba@gmail.com" .Subject = "Assunto..." .HTMLBody = "Corpo do email..." 'Verifica as exteções .pdf StrFile = Dir(StrPath & "*.pdf*") Do While Len(StrFile) > 0 .Attachments.Add StrPath & StrFile StrFile = Dir Loop '.DeleteAfterSubmit = True '.Send 'Caso for enviar, descomentar essa linha e comentar a linha debaixo .Display End With MsgBox "Relatórios enviados", vbOKOnly 'Deleta os arquivos dentro do diretório On Error Resume Next Kill "C:UsersalevbaDownloads*.pdf*" On Error GoTo 0 End Sub
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Quando rodo a macro dá um erro 'O tipo definido pelo usuário não foi definido' e aponta o erro aqui:
Sub AleVBA_26270()
Dim ws As Worksheet
Dim Fname As String
Dim mess_body As String, StrFile As String, StrPath As String
Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem
Acredito que eu esteja deixando de fazer alguma coisa, alterei a pasta para salvar, coloquei o endereço de email, mas não obtive êxito.
Pode me dar uma força?
Boa tarde!!
Nos meus teste eu não tive problema!!
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Testei novamente e ocorreu o mesmo erro
Mandei uma print para vc ver se consegue ajudar... mas desde já te agradeço de coração pela força e disposição em ajudar.
Vou pesquisando aqui também se encontrar uma solução antes de vc comunico.
Abraço
Boa tarde!!
Faça a referência do outlook (Microsoft Outlook 14.0)
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
ok, obg
Alexandre, tenho um outro indicador que para este preciso enviar somente a planilha ativa... tentei ajustar seu código, mas não consegui.
eu alterei a linha:
For Each ws In ActiveWorkbook.Worksheets
por essa:
Set ws = ActiveSheet
e exclui:
Next ws
No entanto não obtive êxito.
Você consegue adaptar esse código para essa nova necessidade???
Boa tarde!!
Tente....
...Não testado.
'For Each ws In ActiveWorkbook.Worksheets ' On Error Resume Next 'Cuidado com os nomes(para a variável >>> Fname) das guias, para mais informações leia: 'https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx Fname = "C:UsersalevbaDownloads" & Name ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=Fname, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False 'Next ws
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Exatamente isso!!! Mto obg.