| Fórum Excel Bácico, Avançado e Vba Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA... |
| | Salvar em PDF Algumas Planilhas | |
| | Autor | Mensagem |
---|
rafasg
Mensagens : 8 Data de inscrição : 10/08/2012
| Assunto: Salvar em PDF Algumas Planilhas Qua Ago 22, 2012 4:46 pm | |
| Bom dia,
Uso o código abaixo para salvar em pdf cada planilha ativa do meu projeto, porém, como geralmente preciso salvar o orçamento e também o cheklist, gostaria de saber como uso o mesmo código para salvar duas planilhas (exempl: Plan1 e Plan2) juntas
Sub Salvando() Dim Nome As String Dim SDate As String Dim MyLocal As String MyLocal = "C:\" Nome = Range("A1").Value SDate = Now If Nome <> vbNullString Then Sheets("Plan1").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ MyLocal & Nome & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True MsgBox "O arquivo " & Nome & " foi salvo em " & SDate & ".", vbOKOnly, "Salvo" Else MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo" End If End Sub
Rafael | |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Salvar em PDF Algumas Planilhas Dom Ago 26, 2012 8:24 pm | |
| Boa tarde!! Veja se é isto - Código:
-
Sub Exportar_Para_Pdf() strFilePath = "D:\DATA\test\"
' Application.ScreenUpdating = False On Error Resume Next For j = 1 To 2 ' As duas primeiras planilhas strPdfName = Sheets(j).Name Sheets(j).Copy ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilePath & strPdfName, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False ActiveWorkbook.Close (False) Next 'Application.ScreenUpdating = True End Sub
| |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Salvar em PDF Algumas Planilhas Dom Ago 26, 2012 9:24 pm | |
| Boa tarde!!! Outra maneira... Você pode fazer isso com qualquer número de folhas, criando uma folha de consolidação de todas as folhas que deseja exportados e depois exportar essa folha temporária. - Código:
-
Sub test() Dim mySheets As Sheets Dim SaveToPath As String Set mySheets = Worksheets(Array("Sheet1", "Sheet2", "Sheet3")) SaveToPath = "Macintosh HD:Users:merickson:Desktop:test" With ConsolidationSheet(mySheets, "") .ExportAsFixedFormat Type:=xlTypePDF, Filename:=SaveToPath, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Application.DisplayAlerts = False .Delete Application.DisplayAlerts = True End With End Sub
Function ConsolidationSheet(mySheets As Sheets, Optional SheetHeader As Variant) As Worksheet Dim tempSheet As Worksheet Dim StartNewSheetRow As Long, StartNewSheetCell As Range Dim i As Long With mySheets(1).Parent Set tempSheet = .Worksheets.Add(before:=.Sheets(1)) End With For i = 1 To mySheets.Count StartNewSheetRow = ReallyUsedRange(tempSheet).Rows.Count + 1 Set StartNewSheetCell = tempSheet.Cells(StartNewSheetRow, 1) Select Case TypeName(SheetHeader) Case "String" If SheetHeader = vbNullString Then tempSheet.Cells(StartNewSheetRow, 1).Value = mySheets(i).Name Else tempSheet.Cells(StartNewSheetRow, 1).Value = SheetHeader End If Case "Range" tempSheet.Cells(StartNewSheetRow, 1).Value = mySheets(i).Range(SheetHeader.Cells(1, 1).Address).Text End Select StartNewSheetRow = ReallyUsedRange(tempSheet).Rows.Count + 1 ReallyUsedRange(mySheets(i)).Copy Destination:=tempSheet.Cells(StartNewSheetRow, 1) tempSheet.HPageBreaks.Add before:=StartNewSheetCell Next i tempSheet.Rows(1).Delete Set ConsolidationSheet = tempSheet End Function
Function ReallyUsedRange(aSheet As Worksheet) As Range Dim lastRow As Long, lastColumn As Long Dim i As Long With aSheet lastRow = 0 For i = 1 To .UsedRange.Columns.Count + .UsedRange.Column lastRow = Application.Max(.Cells(.Rows.Count, i).End(xlUp).Row, lastRow) Next i lastColumn = 0 For i = 1 To lastRow lastColumn = WorksheetFunction.Max(.Cells(i, .Columns.Count).End(xlToLeft).Column, lastColumn) Next i Set ReallyUsedRange = .Range("A1").Resize(lastRow, lastColumn) End With End Function | |
| | | rafasg
Mensagens : 8 Data de inscrição : 10/08/2012
| Assunto: Re: Salvar em PDF Algumas Planilhas Seg Ago 27, 2012 4:30 pm | |
| Bom dia, É isso mesmo, funcionou.
Obrigado. | |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Salvar em PDF Algumas Planilhas Ter Ago 28, 2012 2:54 am | |
| Boa noite!! Que bom que seu problema resolvido!!! Att | |
| | | DavidFelix
Mensagens : 16 Data de inscrição : 22/03/2013
| Assunto: Amigos estou com uma Duvida Sobre como gravar em PDF esta area do excel Sáb Mar 23, 2013 1:39 am | |
| Eu quero que ao clicar no botao para gravar ele me grave uma area da folha do excel e grave um pdf. Mas não sei que VBA usar obrigado se ouver alguem que me ajude obrigado.
[ | |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Salvar em PDF Algumas Planilhas Dom Mar 24, 2013 1:40 am | |
| Boa noite!!
Abra seu próprio tópico!!
Att | |
| | | Conteúdo patrocinado
| Assunto: Re: Salvar em PDF Algumas Planilhas | |
| |
| | | | Salvar em PDF Algumas Planilhas | |
|
Tópicos semelhantes | |
|
| Permissões neste sub-fórum | Não podes responder a tópicos
| |
| |
| |
|