Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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

@Wendell Menezes

 

Ficou excelente, exatamente isso!

 

Tem alguma maneira de fazer com que consolide todos os PDFs em apenas um ?

 

Obrigado!

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

iguilherme

 

Só faltou você agradecer ao Wendell, clicando em Curtir das respostas dele.

 

[]s

  • 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






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

×