Usei um UserForm e resolvi com o seguinte código:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If Me.cbSh1 = True Then
ThisWorkbook.Sheets("Folha2").PrintOut copies:=1
End If
If Me.cbSh2 = True Then
ThisWorkbook.Sheets("Folha3").PrintOut copies:=1
End If
If Me.cbSh3 = True Then
ThisWorkbook.Sheets("Folha4").PrintOut copies:=1
End If
Unload Me
Application.ScreenUpdating = True
End Sub
Agora estou a tentar fazer o mesmo com a possibilidade de guardar em PDF, mas não estou a conseguir guardar apenas as abas selecionadas no userform. A formula a baixo, selecionada todas as abas da planilha.
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Sheets("Folha1").Select
ThisWorkbook.Sheets.Select
Dim vPDFPath As Variant
Do
bRestart = False
vPDFPath = Application.GetSaveAsFilename(, "PDF Files (*.pdf), *.pdf")
If CStr(vPDFPath) = "False" Then
Exit Sub
Else
lAppSep = InStrRev(vPDFPath, Application.PathSeparator)
End If
If UCase(Dir(vPDFPath)) = UCase(Right(vPDFPath, Len(vPDFPath) - lAppSep)) Then
Select Case MsgBox("O arquivo já existe. Deseja substituí-lo?", _
vbYesNoCancel, "ATENÇÃO!")
Case vbYes
Kill vPDFPath
Case vbNo
bRestart = True
Case vbCancel
Sheets("Folha1").Select
Exit Sub
End Select
End If
Loop Until bRestart = False
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=vPDFPath, _
OpenAfterPublish:=True
Sheets("Folha1").Select
MsgBox "Ficheiro Criado com Sucesso"
End Sub
O problema está em "ThisWorkbook.Sheets.Select" mas não estou a conseguir resolver. Se colocar uma condição por cada folha, vai fazer um pdf por cada também, e o que eu quero é um único pdf.
Obrigado.
Postado : 20/09/2016 3:55 am