CRIANDO PDF DE PLANILHAS E MESCLANDO VIA LISTBOX
Olá pessoal,
Tenho um Userform com Listbox que lista todas as planilhas (abas) existentes em uma Workbook. O código que postarei abaixo tem a função de converter em formato PDF todas das abas (planilhas) listadas no Listbox, separadamente com o nome de cada uma.
O que preciso é que ao invés de criar os arquivos PDF[ô]s separadamente, seja criado um arquivo só, contendo as planilhas que foram pré-selecionadas no Listbox. Alguém pode me ajudar? Desde já agradeço.
Segue código:
Dim L As Long
For L = 0 To lstPlanilhas.ListCount - 1
Dim FName1
FName1 = Sheets(lstPlanilhas.List(L)).Name
If lstPlanilhas.Selected(L) = True Then
Sheets(lstPlanilhas.List(L)).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & [Ô]\[Ô] + FName1 + [Ô].pdf[Ô], Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End If
Next
Tenho um Userform com Listbox que lista todas as planilhas (abas) existentes em uma Workbook. O código que postarei abaixo tem a função de converter em formato PDF todas das abas (planilhas) listadas no Listbox, separadamente com o nome de cada uma.
O que preciso é que ao invés de criar os arquivos PDF[ô]s separadamente, seja criado um arquivo só, contendo as planilhas que foram pré-selecionadas no Listbox. Alguém pode me ajudar? Desde já agradeço.
Segue código:
Dim L As Long
For L = 0 To lstPlanilhas.ListCount - 1
Dim FName1
FName1 = Sheets(lstPlanilhas.List(L)).Name
If lstPlanilhas.Selected(L) = True Then
Sheets(lstPlanilhas.List(L)).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & [Ô]\[Ô] + FName1 + [Ô].pdf[Ô], Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End If
Next
PABLOMOREIRAGV,
Se você retirar este trecho de dentro do [Ô]for[Ô], colocando-o acima do [Ô]for[Ô] o que acontece?
[][ô]s,
Tunusat
Se você retirar este trecho de dentro do [Ô]for[Ô], colocando-o acima do [Ô]for[Ô] o que acontece?
Dim FName1
FName1 = Sheets(lstPlanilhas.List(L)).Name [ô]Activesheet.Name
[][ô]s,
Tunusat
Fazendo isso, ao selecionar mais de uma opção ela só converterá o último item selecionado.
Private Sub CommandButton1_Click()
Dim x As Integer
Dim i As Integer
Dim ws As Worksheet
Dim strSheet() As String
Set ws = ActiveSheet
For x = 0 To lstPlanilhas.ListCount - 1
If lstPlanilhas.Selected(x) = True Then
ReDim Preserve strSheet(0 To i)
strSheet(i) = lstPlanilhas.List(x)
i = i + 1
End If
Next
Sheets(strSheet).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & [Ô]\[Ô] & [Ô]Teste[Ô] + [Ô].pdf[Ô], Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ws.Select
Set ws = Nothing
Unload Me
End Sub
Private Sub UserForm_Initialize()
[ô]Declarando variavel
Dim ws As Worksheet
[ô]Inicialmente, precisamos limpar o
[ô]listbox
lstPlanilhas.Clear
[ô]agora para cada planilha adicionamos o tÃtulo
[ô]da planilha no list Box
For Each ws In ThisWorkbook.Sheets
lstPlanilhas.AddItem ws.Name
Next
End Sub
Dim x As Integer
Dim i As Integer
Dim ws As Worksheet
Dim strSheet() As String
Set ws = ActiveSheet
For x = 0 To lstPlanilhas.ListCount - 1
If lstPlanilhas.Selected(x) = True Then
ReDim Preserve strSheet(0 To i)
strSheet(i) = lstPlanilhas.List(x)
i = i + 1
End If
Next
Sheets(strSheet).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & [Ô]\[Ô] & [Ô]Teste[Ô] + [Ô].pdf[Ô], Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ws.Select
Set ws = Nothing
Unload Me
End Sub
Private Sub UserForm_Initialize()
[ô]Declarando variavel
Dim ws As Worksheet
[ô]Inicialmente, precisamos limpar o
[ô]listbox
lstPlanilhas.Clear
[ô]agora para cada planilha adicionamos o tÃtulo
[ô]da planilha no list Box
For Each ws In ThisWorkbook.Sheets
lstPlanilhas.AddItem ws.Name
Next
End Sub
Apenas trate o nome do arquivo pdf, pois coloquei uma referencia fixa
Abraço
Abraço
Perfeito Fábio, resolveu completamente o meu problema. Muito obrigado mesmo.
Estarei encerrando o tópico e te pontuando.
Abs,
Pablo Moreira
Estarei encerrando o tópico e te pontuando.
Abs,
Pablo Moreira
Tópico encerrado , respostas não são mais permitidas