Ir para conteúdo

BABOO e KTS 2018 no YouTube Loja online do BABOO

CSeizo

Salvar aba específica em PDF - Excel VBA

Mensagem Recomendada

Boa noite pessoal!

Tenho uma planilha com diversas abas e criei um botão para que estando em uma das abas de auxílio, o usuário possa gerar o PDF da aba principal mesmo sem estar nesta.

Criei uma rotina em VBA, entretanto ao clicar no botão para salvar ocorre um erro na sintaxe "ThisWorkbook.Sheets("Cot1").Select"

Segue abaixo módulo inteiro para facilitar a interpretação:
 


Sub cotacao1_PDF()



Dim decisão As Variant



decisão = MsgBox("Deseja gerar um PDF da cotação?", vbYesNo + vbQuestion, "Cotação indicativa D&O")



If decisão = vbYes Then



Dim aba_cot1 As Worksheet



Set aba_cot1 = Worksheets("Cot1")



Dim nome_arquivo As String



nome_arquivo = aba_cot1.Range("A63").Value



Dim caminho_arquivo As String



caminho_arquivo = ThisWorkbook.Path



'formulas'



ThisWorkbook.Sheets("Cot1").Select



ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Format(Date, "yyyyddmm") & "_1.3.4_" & nome_arquivo



MsgBox "Salvo com Sucesso!", vbInformation, "Cotação indicativa D&O"



Else

MsgBox "Operação Cancelada", vbCritical, "Cotaçaõ indicativa D&O"



End If



End Sub

Não sei exatamente qual erro cometi neste caso, poderiam por gentileza auxiliar?

Abraços!


César Seizo

_________________________________

Tentando aprender VBA!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo erro de sintaxe nesta linha


ThisWorkbook.Sheets("Cot1").Select

 

Qual o texto que aparece na Caixa de Erro? Não seria "subscrito fora do intervalo" ?

Se sim, o erro ocorre porque no arquivo não existe planilha com o nome que foi referenciado no código.


Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Osvaldo!

O erro retornado é o seguinte:

Citar

 

Run-time error '1004'

Select method of Worksheet class failed

 

A aba em que o template de cotação usado para gerar o PDF é diferente da que inserimos as informações, e fica oculta, pode ser essa a causa? Precisaria torná-la visível antes ou não tem nada a ver?

Abs,


César Seizo

_________________________________

Tentando aprender VBA!

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, CSeizo disse:

... e fica oculta, pode ser essa a causa? Precisaria torná-la visível antes ou não tem nada a ver?

Exato, a causa do erro é a planilha estar oculta.

Experimente o código abaixo como alternativa.

Sub cotacao1_PDF_V2()
 Dim nome_arquivo As String
  Application.ScreenUpdating = False
   If MsgBox("Deseja gerar um PDF da cotação?", vbYesNo + vbQuestion, "Cotação indicativa D&O") = vbNo Then Exit Sub
   nome_arquivo = Sheets("Cot1").Range("A63").Value
    With Sheets("Cot1")
     .Visible = 1
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Format(Date, "yyyyddmm") & "_1.3.4_" & nome_arquivo
     .Visible = 0
    End With
   MsgBox "Salvo com Sucesso!", vbInformation, "Cotação indicativa D&O"
  Application.ScreenUpdating = True
End Sub

 


Osvaldo

 

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


×