Pergunte aqui
1

Adaptar Macro do Excel p/ Libre

perguntadas 2019-06-13 23:44:47 +0200

imagem do gravatar de Silmar

updated 2019-06-14 22:26:58 +0200

Boa noite! Eu fiz uma planilha que fixa um número no CABEÇALHO e imprime as páginas 02 à 299 com o cabeçalho.

Eu fiz em VBA usando o gravador de macros, mas não consegui fazer o mesmo processo no LIBREOFFICE. Alguém poderia me ajudar a fazer a adaptação para que funcione no Libre? Postei a planilha em excel no seguinte endereço: https://www.sendspace.com/file/h4ppqa

É muito simples o que preciso: - Inserir um número de processo no cabeçalho (lado esquerdo) - Colocar esse número em negrito; - Imprimir as páginas 02 à 299.

Se alguém puder me ajudar, ficarei imensamente agradecido!

Cordialmente, Silmar

Complemento

O número do processo será digitado na caixa de diálogo. Um colega conseguiu chegar bem perto do que preciso. Só está dando erro na última linha. Veja no arquivo que irei anexar.

C:\fakepath\PREENCHER CABEÇALHO E IMPRIMIR.ods

Complemento 2

C:\fakepath\EXEMPLO.jpg

Veja essa imagem, veja se consegue ver como ficará a página.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Ola @Silmar, seja bem vindo ao Grupo.

São folhas em branco que serão impressas ?

Poste um modelo de arquivo....altere dados sigilosos.

Obs. No Calc a formatação de página fica no arquivo, não precisa programar, via macro.


ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-06-14 00:46:46 +0200 )editar

Obrigado, Gilberto! Sim, serão impressas páginas em branco. Corrigindo, a planilha fará: 1- Colocará o número do processo no cabeçalho esquerdo; 2- Colocará o número da página; 3- imprimir as páginas 02 a 299.

imagem do gravatar de SilmarSilmar ( 2019-06-14 01:08:36 +0200 )editar

@Silmar, , algo assim: ( só exemplo, sem as medidas da macro )

Descrição da imagem

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-06-14 01:39:40 +0200 )editar

A macro diz lado direito:

RightHeader = "&""-,Negrito""&14RUBRICA________FLS. &P" & Chr(10) & "PA " & NumeroProcesso & " "

No arquivo não veio macro !

Poste um exemplo de página...

Obs. Não use Adicionar resposta para comentar.


ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-06-14 02:21:30 +0200 )editar

Nossa, verdade, Gilberto é do lado DIREITO, falha minha. Eu tenho ela funcionando no excel, se puder rodá-la, verá como ela funciona, mas basicamente é: - Ela pede para eu digitar o número do processo; - A macro insere o número os dizeres: Rubrica ______, Número da página e na linha de baixo o número do processo que eu digitei; - Imprime as folhas 2 à 299. Eu tirei um print da página pronta que faço no excel, talvez fique mais fácil entender.

imagem do gravatar de SilmarSilmar ( 2019-06-14 12:01:47 +0200 )editar

1 Resposta

0

respondidas 2019-06-15 00:59:58 +0200

Ola @Silmar, segue uma sugestão.

Página inicial, página final e Numero do Processo é digitado na planilha.

A macro:

Sub Imprimir
Dim document, dispatcher, oCel As Object
Dim pgFinal As Integer
Dim pgInicio As Integer
dim args1(0) as new com.sun.star.beans.PropertyValue
dim args11(0) as new com.sun.star.beans.PropertyValue
dim args2(0) as new com.sun.star.beans.PropertyValue
dim args3(0) as new com.sun.star.beans.PropertyValue
dim args12(0) as new com.sun.star.beans.PropertyValue
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

args11(0).Name = "ToPoint"
args11(0).Value = "maximoo"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args11())

    oCel = ThisComponent.getCurrentSelection()
    pgFinal = oCel.getString()

args1(0).Name = "ToPoint"
args1(0).Value = "inicioo"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

args2(0).Name = "ToPoint"
args2(0).Value = "contadorr"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

    oCel = ThisComponent.getCurrentSelection()
    pgInicio = oCel.getString()

While pgFinal >= pgInicio 

args3(0).Name = "ToPoint"
args3(0).Value = "paginaa"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
Wait 1000

pgInicio = pgInicio + 1

args12(0).Name = "ToPoint"
args12(0).Value = "contadorr"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args12())

GlobalScope.BasicLibraries.LoadLibrary("Tools")
dim Variavel As Long
Variavel = pgInicio
oSheet=ThisComponent.Sheets(0) ' 0 é a primeira planilha
ChangeValueofRange (oSheet, "C2", Variavel)

wend
End Sub

Arquivo do teste.


ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha

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

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-06-13 23:44:47 +0200

Lidas: 32 vezes

Última atualização: Jun 15