Ir ao conteúdo
  • Cadastre-se
jguilherme

RESOLVIDO VBA para gerar relatório PDF

Recommended Posts

Boa noite!

 

Eu já possuo o código para gerar PDF, porém tenho um problema.

Eu preciso gerar PDF de uma única aba, que contém dados dependentes de uma lista de validação de dados. Portanto quando altero o nome na lista de validação, as demais informações são alteradas de acordo com esse nome.

 

O problema é:

 

Eu preciso gerar um relatório PDF da mesma aba, porém preciso que a macro altere os valores da validação de dados de acordo com um critério.

Criei um formulário, contendo um combobox no qual você seleciona o critério desejado e clica no botão "Gerar PDF". Ao clicar nesse botão, preciso que a macro procure todos os valores associados a esse critério e vá alterando na lista de validação até o último valor disponível. Ao fazer isso, é necessário que a cada alteração gere uma página em PDF, como se fosse um print mesmo da própria página.

 

Exemplo:

 

Critério: Região

 

Região selecionada: RJ

 

Locais no RJ: Niteroi, Ipanema, Copacabana

 

Portanto, preciso que ao selecionar RJ a macro altere na lista de validação todas as opções de locais possíveis para a região RJ. E ao fazer isso, gere uma página em PDF para cada opção.

 

Se ainda restar alguma dúvida posso postar a planilha.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Wendell Menezes

 

Obrigado pela ajuda! Segue uma planilha de modelo https://dl.dropboxusercontent.com/u/61325364/Modelo%20Planilha.xlsm

 

Resumindo:

 

Preciso que procure a Regional na aba "VBA" e retorne o nome do prédio na aba "status" célula F2. E repita isso até não restar mais nenhum prédio dessa Regional. Nesse meio tempo, preciso que cada vez que o nome do prédio seja alterado na "Status!F2" seja gerado um documento PDF dessa aba, e no final todas as páginas devem constar no mesmo documento.

 

Deixei o código pela metade e provavelmente incorreto.

 

Novamente agradeço !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por macro eu sinceramente não sei :(

 

Mas por esse site é possível: http://www.pdfmerge.com/

Editado por Wendell Menezes
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Wendell Menezes

 

Tem a aba "Status" e a aba "Relatório". As duas contém informações diferentes.

 

Sempre que gerar o pdf a aba "Relatório" é calculada de acordo com a Regional escolhida no combobox.

Sendo assim, a primeira página do pdf é a aba "Relatório" e a segunda é a aba "Status". Preciso gerar um pdf das 2 abas, em páginas diferentes.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu posso estar enganado, mas acho q a única maneira de gerar um PDF com duas páginas é quando toda a informção está uma única aba e, devido ao tamanho da área de impressão, o PDF fica com 2 ou mais páginas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Wendell Menezes

 

E para gerar o pdf de mais de uma aba ? Não é possível?

 

Estou tendo problemas também com o formato da página.. mesmo mantendo a área de impressão onde eu quero que fique o PDF, ele sai da aba toda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é possível. O código abaixo gera um PDF com duas páginas, sendo o intervalo A1:B10 das abas STATUS e VBA_Fotos.

Private Sub Gerar_Click()Dim ws1 As Worksheet, ws2 As WorksheetDim ShNames As VariantDim r As Long, i As LongDim Nome As String, Data As String, SvInput As StringSet ws1 = Worksheets("STATUS")Set ws2 = Worksheets("VBA_Fotos")ShNames = Array("STATUS", "VBA_Fotos")Application.ScreenUpdating = Falsews1.Shapes.Range(Array("Setas")).Visible = False    For r = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row        If ws2.Cells(r, 2) = Me.Regional Then            ws1.Range("F2") = ws2.Cells(r, 1)            Nome = "Infra" & " - " & Range("F2")            Data = Format(Date, "dd-mm-yyyy")            SvInput = ThisWorkbook.Path & "\" & Nome & "_" & Data & ".pdf"            Calculate            Sheets(ShNames).Select            ActiveSheet.Range("A1:B10").Select            Selection.ExportAsFixedFormat 0, SvInput, , , , , , False            i = i + 1        End If    Nextws1.Selectws1.Shapes.Range(Array("Setas")).Visible = TrueApplication.ScreenUpdating = TrueUnload MeMsgBox i & " PDF(s) gerados!", vbInformation, "# Informação"End Sub

Fonte: http://stackoverflow.com/questions/14404650/save-multiple-sheets-to-pdf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×