Pergunte aqui
1

Libreoffice Calc > Formatar > Dispor > Trazer para frente

perguntadas 2017-10-27 01:43:18 +0100

esta mensagem está marcada como wiki comunitário

Esta mensagem é um wiki. Qualquer pessoa com karma >75 é bem-vinda para a melhorar.

Tentei gravar uma macro : Exibir > Navegador > Objetos OLE > Nome do Gráfico >>>> Formatar > Dispor > Trazer para a Frente > Celula A5 . Tudo na mesma planilha. Depois a macro é vinculada a uma forma. Após gravada a macro somente seleciona a celula. Como resolver este problema? Por Favor Alguém? Obrigado!!!

sub GrafMes
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Navigator"
args1(0).Value = true

dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args1())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:GoToObject", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Navigator"
args3(0).Value = false

dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args3())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:BringToFront", "", 0, Array())

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$A$5"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
end sub

.

Na verdade são 5 gráficos dispostos um sobre o outro e cada um tem uma forma (ou botão) que ao ser clicada traga o gráfico correspondente para frente .

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Poste a macro....

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-10-27 02:22:23 +0100 )editar

Não sei se as ações no navegador podem ser gravadas. Eu gravaria a seleção do gráfico e a sequencia para trazer pra frente. A célula A5 é selecionada por que tem vc clicou nela logo antes de terminar a gravação

imagem do gravatar de OlivierOlivier ( 2017-10-27 17:18:45 +0100 )editar

3 Respostas

0

respondidas 2017-10-28 00:25:43 +0100

esta mensagem está marcada como wiki comunitário

Esta mensagem é um wiki. Qualquer pessoa com karma >75 é bem-vinda para a melhorar.

Na verdade são 5 gráficos dispostos um sobre o outro e cada um tem uma forma (ou botão) que ao ser clicada traga o gráfico correspondente para frente .

editar assinalar como ofensivo Excluir Link mais
0

respondidas 2017-10-28 01:34:05 +0100

Ola não sei se é este o erro da macro, mas na gravação, dois dispatcher ficaram como observação, rem na frente, veja abaixo as duas linha em destaque.

sub GrafMes
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Navigator"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args1())


'--------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:GoToObject", "", 0, Array())
'---------------------------------------------------------------------


dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Navigator"
args3(0).Value = false
dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args3())


'------------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:BringToFront", "", 0, Array())
'------------------------------------------------------------------------


dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$A$5"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
end sub

Corrija o seu e rode novamente para ver o que acontece...boa sorte...;;

editar assinalar como ofensivo Excluir Link mais

Comentários

Fiz a correção e também não funciona. Vou pesquisar mais...por enquanto obrigado.

imagem do gravatar de djonnysdjonnys ( 2017-10-28 13:55:28 +0100 )editar
0

respondidas 2017-10-28 22:51:21 +0100

imagem do gravatar de Grafeno

Boa tarde,

Quando o gravador de macro não traz o que queremos (o que geralmente vai acontecer porque ele é experimental e limitado), temos que recorrer a API UNO.

Para macro abaixo funcionar, o gráfico deve ser nomeado, clicando sobre ele com o botão direito do mouse, depois Nome... e preenchendo o campo.

Sub TrazerParaFrente
Dim oDoc As Object, oPlan As Object
Dim oGraficos As Object, oGraf As Object
Dim g As Long

   oDoc = ThisComponent
   oPlan = oDoc.Sheets.getByName("Planilha1")
   oGraficos = oPlan.DrawPage

   For g = 0 to (oGraficos.Count - 1)
      oGraf = oGraficos.getByIndex( g )
      If oGraf.Name = "Grafico 01" Then '<<<< NOME DO GRÁFICO'
         oGraf.ZOrder = (oGraficos.Count - 1)
      End If      
   Next g
End Sub


Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Obrigado pela ajuda. Tentei incluir esta macro mas não deu certo, muito mais pela minha pouca habilidade do que qualquer outra coisa. Não entendo nada de programação e também não acho justo ter tudo "mastigado". Então resolvi fazer mudanças na minha planilha que não incluam macros. Mais uma vez Obrigado pela atenção!

imagem do gravatar de djonnysdjonnys ( 2017-10-29 13:44:47 +0100 )editar

@djonnys, ótimo que tenha resolvido sem macro. Mas o código vai servir para quem estiver procurando sobre o assunto. Obrigado pelo retorno.

imagem do gravatar de GrafenoGrafeno ( 2017-10-30 22:28:50 +0100 )editar

Com calma consegui fazer funcionar corretamente a macro. Perfeito! Mais uma vez muito obrigado!

imagem do gravatar de djonnysdjonnys ( 2017-11-03 20:27:28 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-10-27 01:43:18 +0100

Lidas: 42 vezes

Última atualização: Oct 28 '17