Notifications
Clear all

BOTÃO GERAR PDF DA ABA DENTRO DA COMBOBOX

4 Posts
2 Usuários
0 Reactions
1,511 Visualizações
(@maruchoa)
Posts: 18
Active Member
Topic starter
 

Amigos,
Tenho uma ComboBox onde apresenta uma Caixa de Combinação listando as ABAS da planilha que quero que apareça e tenho também vários botões com uma macro que gera o PDF das células programadas na macro.

A questão é que quando eu clico no botão (qualquer que seja o botão) ele gera o PDF da página (ABA) que está aberta na Planilha e não da ABA correspondente ao botão clicado.

Se eu quiser que ele gere o pdf da ABA do botão, terei que ir na caixa de combinação, selecionar a ABA correspondente ao botão para assim o botão gerar o pdf da aba aberta.

EU PRECISO é que o PDF seja gerado da ABA correspondente ao Botão clicado sem necessariamente ter que selecionar a ABA na Caixa de Combinação ou mesmo abri-la primeiro, entenderam?

Segue link abaixo de um modelo da Planilha para visualização:
https://drive.google.com/file/d/17DzBRww5tCGZX1MtTDhCBp185RfnhWW5/view?usp=sharing

Agradeço profundamente a solução desse problema!

 
Postado : 13/09/2018 9:45 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Basta mudar Activesheet por Sheets(ToggleButton"?".Caption)

Altere o código do seu userform por esse:

Private Sub ComboBox1_Change()
'Updateby Extendoffice
    If ComboBox1.ListIndex > -1 Then Sheets(ComboBox1.Text).Select
End Sub
Private Sub ComboBox1_DropButtonClick()
Dim xSheet As Worksheet
Dim planilhasVisiveis As Variant

Dim plan As Variant 'ExcelFlex: inclusão de um array com as planilhas que você quer que apareça no combo
  planilhasVisiveis = Array("ABA1", "ABA2", "ABA3", "ABA4")

On Error Resume Next
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  If ComboBox1.ListCount <> ThisWorkbook.Sheets.Count Then
    ComboBox1.Clear
    For Each xSheet In ThisWorkbook.Sheets
      For Each plan In planilhasVisiveis
        If plan = xSheet.Name Then 'ExcelFlex: verifica se a planilha existe no combo e adiciona
          ComboBox1.AddItem xSheet.Name
        End If
      Next plan
    Next xSheet
  End If
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub

Private Sub ComboBox1_GotFocus()
    If ComboBox1.ListCount <> 0 Then ComboBox1.DropDown
End Sub

Private Sub Image1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

End Sub

Private Sub Label1_Click()

End Sub

Private Sub ToggleButton1_Click()
    Dim strNome As String
    Dim Caminho As String
    
    'Chamada da caixa de entrada de dados
    strNome = InputBox("Insira o Nome ou Número do Relatório", "Gerador de Relatório em .pdf")
    'Caminho onde será salvo o documento e a concatenação das demais referencias
    Caminho = ActiveWorkbook.Path & "" & "" & strNome & ".pdf"
    
    'Modo como o arquivo será expostado, formatações do arquivo pdf
     Sheets(ToggleButton1.Caption).ExportAsFixedFormat Type:=xlTypePDF, _
     Filename:=Caminho, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=True, _
     OpenAfterPublish:=False
End Sub

Private Sub ToggleButton2_Click()
    Dim strNome As String
    Dim Caminho As String
    
    'Chamada da caixa de entrada de dados
    strNome = InputBox("Insira o Nome ou Número do Relatório", "Gerador de Relatório em .pdf")
    'Caminho onde será salvo o documento e a concatenação das demais referencias
    Caminho = ActiveWorkbook.Path & "" & "" & strNome & ".pdf"
    
    'Modo como o arquivo será expostado, formatações do arquivo pdf
     Sheets(ToggleButton2.Caption).Range("B4:X25").ExportAsFixedFormat Type:=xlTypePDF, _
     Filename:=Caminho, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, _
     OpenAfterPublish:=False
End Sub

Private Sub ToggleButton3_Click()
    Dim strNome As String
    Dim Caminho As String
    
    'Chamada da caixa de entrada de dados
    strNome = InputBox("Insira o Nome ou Número do Relatório", "Gerador de Relatório em .pdf")
    'Caminho onde será salvo o documento e a concatenação das demais referencias
    Caminho = ActiveWorkbook.Path & "" & "" & strNome & ".pdf"
    
    'Modo como o arquivo será expostado, formatações do arquivo pdf
     Sheets(ToggleButton3.Caption).Range("B2:X23").ExportAsFixedFormat Type:=xlTypePDF, _
     Filename:=Caminho, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, _
     OpenAfterPublish:=False
End Sub

Private Sub ToggleButton4_Click()
    Dim strNome As String
    Dim Caminho As String
    
    'Chamada da caixa de entrada de dados
    strNome = InputBox("Insira o Nome ou Número do Relatório", "Gerador de Relatório em .pdf")
    'Caminho onde será salvo o documento e a concatenação das demais referencias
    Caminho = ActiveWorkbook.Path & "" & "" & strNome & ".pdf"
    
    'Modo como o arquivo será expostado, formatações do arquivo pdf
     Sheets(ToggleButton4.Caption).Range("A1:W22").ExportAsFixedFormat Type:=xlTypePDF, _
     Filename:=Caminho, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, _
     OpenAfterPublish:=False
End Sub

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 13/09/2018 10:27 am
(@maruchoa)
Posts: 18
Active Member
Topic starter
 

xlarruda,

Não está dando para visualizar o arquivo corrigido que você postou.
Onde está?

 
Postado : 13/09/2018 10:30 am
(@maruchoa)
Posts: 18
Active Member
Topic starter
 

xlarruda"

Agora sim... Código funcionando direitinho.
Parabéns xlarruda, Você sempre contribuindo e nos ajudando no Fórum.
Mais uma vez, muito obrigado!

 
Postado : 13/09/2018 1:23 pm