Notifications
Clear all

Salvamento do Relatório em PDF na area de trabalho

6 Posts
2 Usuários
0 Reactions
1,117 Visualizações
 DJMF
(@djmf)
Posts: 3
New Member
Topic starter
 

Ola.
Estou elaborando um mapa de notas para escola em que trabalho, neste mapa de notas os professores geram planilhas diferentes para cada turma e matéria que lecionam
desta forma cada professor terá uma pasta de trabalho com uma quantidade de planilhas que vai variar para cada professo.

Gostaria de gerar um relatório em pdf que seja salvo na área de trabalho consolidando todas as planilhas exceto a planilha Mapa 0 e Alimentando Mapas pois estas são usadas apenas gerar os mapas individuais para cada turma.

Os mapas são gerados desta forma:

Sub CriarPlanilha()
'
' Macro1 Macro
'
 
    If Sheets("Alimentando Mapas ").Range("E4").Value = "" Then
     
    MsgBox "Preencha o campo Docente."
    Exit Sub
    End If
    
    If Sheets("Alimentando Mapas ").Range("E5").Value = "" Then
     
    MsgBox "Preencha o campo Turma."
    Exit Sub
    End If
    
    If Sheets("Alimentando Mapas ").Range("E6").Value = "" Then
     
    MsgBox "Preencha o campo Matéria."
    Exit Sub
    End If
    
    Application.ScreenUpdating = False
    Sheets("Mapa 0").Visible = True
    Sheets("Mapa 0").Select
    Sheets("Mapa 0").Copy Before:=Sheets(2)
    Sheets("Alimentando Mapas ").Select
    Range("E4:E6").Select
    Selection.Copy
    Sheets("Mapa 0 (2)").Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("Alimentando Mapas ").Select
    Range("C9:C33").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Mapa 0 (2)").Select
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("Alimentando Mapas ").Select
    Range("H9:H33").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Mapa 0 (2)").Select
    Range("B40").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
     
    Sheets("Alimentando Mapas ").Select
    Range("E5:E6").Select
    Selection.ClearContents
    
    Range("C9:C33,H9:H33").Select
    Selection.ClearContents
    Sheets("Mapa 0").Visible = False
    Application.ScreenUpdating = True
    
    On Error GoTo Trata_Erro
     
    Sheets("Mapa 0 (2)").Select
    ActiveSheet.Name = Range("A1").Value
        
    Exit Sub
    
Trata_Erro:
    
    MsgBox "Esta planilha já existe!!! Tente novamente :-("
    
    Application.DisplayAlerts = False
    Sheets("Mapa 0 (2)").Select
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    
    
    End Sub
    
Sub Visualizar_impressão()
'
'
' Macro2 Macro

    Range("A69:u110").Select
    Range("A1").Activate
    ActiveSheet.PageSetup.PrintArea = "$A$69:$u$110"
    ActiveWorkbook.PrintPreview
    ActiveSheet.PageSetup.PrintArea = ""
    

End Sub

Pra gerar o Relatório achei isso aqui

Sub Relatorio_PDF()
'
' Macro3 Macro
'
'Instrução para Salvamento do Relatório em PDF na area de trabalho

    
    Dim strNome As String 'Declaração do nome para abertura do box de inserção de número do registro
    Dim Caminho As String 'Declaração endereço onde será salvo o documento
    Dim Abrir As Boolean 'Declaração para abertura do registro após salvamento
    
    
    strNome = InputBox("Insira o Número do Relatório", "Gerador de Relatório em .pdf")
    Caminho = "C:Users" & Environ$("Username") & _
    "Desktop" & " Relatório -  " & strNome
    
'Sai do processo de salvamento
    If strNome = "" Then
        MsgBox ("Salvamento Cancelado!!!")
    Exit Sub
    End If
    
    If (MsgBox("O Relatório será salvo no Diretório:   " + vbNewLine + Caminho + vbNewLine + "  Deseja abrí-lo após ser salvo ?", _
    vbYesNo, "Informação") = vbYes) Then
        Abrir = True
    Else
        Abrir = False
    End If
    
  
' Meu problema está neste passo 

    ActiveSheets.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Caminho, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=Abrir
'
End Sub

Preciso que a que sejam selecionada todas as planilha menos Mapa 0 e Alimentando Mapas e não apenas a planilha ativa.

 
Postado : 07/06/2017 8:58 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

DJMF,

Boa tarde!

Não testei... mas mude a parte onde você diz que está o problema para esta:

' Meu problema está neste passo
    Dim Wks As Worksheet
    
    Application.ScreenUpdating = False
    For Each Wks In Worksheets
        If Wks.Name <> "Mapa 0" Then
            Wks.Select
            ActiveSheets.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Caminho, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=Abrir
        End If
    Next
    Sheets("Mapa 0").Select
    Application.ScreenUpdating = True

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 : 07/06/2017 11:01 am
 DJMF
(@djmf)
Posts: 3
New Member
Topic starter
 

Ola Wagner, desde já agradeço a atenção.

Continuou dando erro no mesmo ponto.

 
Postado : 07/06/2017 3:14 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

DJMF,

Erro?! Como assim? Na sua mensagem você não fala em erro... você diz apenas que

Gostaria de gerar um relatório em pdf que seja salvo na área de trabalho consolidando todas as planilhas exceto a planilha Mapa 0

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 : 08/06/2017 9:07 am
 DJMF
(@djmf)
Posts: 3
New Member
Topic starter
 

Esta é uma adaptação de um outro código para exportar apenas a planilha ativa, todas as alterações que eu fiz implicavam em algum tipo de erro por isso solicitei ajuda aqui.

Com a modificação que você sugeriu, Ele ate gera o relatório porem apenas para a a ultima planilha.

apresenta Erro de tempo de execução 1004 .
E pede para depurar.
Marca este trecho

ActiveSheet.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Caminho, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=Abrir
 
Postado : 08/06/2017 9:34 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

DJMF,

Boa tarde!

Anexe seu arquivo (após a inserção do código que enviei) aqui, compactado com .ZIP.

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 : 08/06/2017 11:01 am