Pergunte aqui
1

Macro para exportar PDF com nome variável

perguntadas 2019-02-19 12:12:47 +0200

imagem do gravatar de lctlucas

updated 2019-03-01 17:56:58 +0200

Bom dia!

Preciso de uma macro que possa fazer os seguintes passos:

  • Selecionar a Célula (B9)
  • Alterar o valor da célula para o numero "1"
  • Exportar a planilha para PDF usando o conteúdo da célula (B3) como nome do arquivo

Fiz a macro abaixo e ela funcionou, o problema é que ela imprime todas as abas da planilha, ou seja a planilha inteira, na verdade eu queria imprimir somente a aba (Planilha1). O que eu faço, podem me ajudar?

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1



sub MacroPDF
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
Dim oPlan as Object, oCel as Object
Dim sNomeArquivo as String

Range("B9").Select
ActiveCell.FormulaR1C1 = "1"
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oPlan = ThisComponent.Sheets.getByName( "Planilha1" )
oCel = oPlan.getCellRangeByName( "B3" )
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/lctlu/Documents/Relatórios de Serv/" & oCel.String & ".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
End sub
editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Ola @lctlucas, seja bem vindo ao Grupo.

De uma olhada neste arquivo, veja as macros.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-02-19 18:37:19 +0200 )editar

Obrigado pela ajuda. Na verdade descobri que tinha relação com os intervalos de impressão, então entrei em cada aba e defini os intervalos de acordo com o que eu queria. Dessa forma minha macro funcionou.

Agora estou com outra duvida, queria tirar aquelas inconvenientes caixas de dialogo em uma macro, no Excel eu costumava usar Application.DisplayAlerts = False, mas parece não funcionar no LibreOffice. Existe alguma alternativa?

imagem do gravatar de lctlucaslctlucas ( 2019-02-19 21:32:44 +0200 )editar

1 Resposta

1

respondidas 2019-02-20 21:43:33 +0200

imagem do gravatar de lctlucas

Na verdade descobri que tinha relação com os intervalos de impressão, então entrei em cada aba e defini os intervalos de acordo com o que eu queria. Dessa forma minha macro funcionou.

editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-02-19 12:12:47 +0200

Lidas: 141 vezes

Última atualização: Feb 20