Como fazer uma Macro para selecionar uma determinada planilha

no excel apenas uso a função a baixo, mas no calc não funciona!:

Sheets(“MENU”).select

seleciona em tela a planilha menu…

O que você deseja é para navegação entre planilhas ou tem outra finalidade ?

para navegação mesmo… no excel nao tinha o hábito de usar o hiperlink pois dava problemas, daí fazia macros… pelo Calc vou usar sua dica de hiperlink (respondida no outro post). Obrigado…

1 Like

Caso ainda queira utilizar macro, normalmente gravo e extraio o código, segue:

sub ir_p_Abril
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 args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 9 '<- Este é o número da (folha) contando da esquerda para direita'

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())


end sub

Basta mudar o número 9 para a correspondente do seu documento e atribuir a macro a um botão.

Olá @LeandroVieira, conselho, use o NOME da planilha, usando o numero, poderá ter problemas se inserir planilha novas, os números das planilhas, após a inserção, muda.

sub ir_p_Abril2
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 = "ToPoint"
args1(0).Value = "$Planilha4.A1" 'Use o endereçamento Planilha.Célula"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
end sub

Só ilustrando, tenho esta macro, que aceita qualquer tipo de endereçamento:

' irPara => GoToAdd "xAdd$"
Sub GoToAdd ( xAdd$ )
'' Suporta os seguintes comandos: ( xAdd$ )
'' Planilha ...........	= "Plan1"
'' Planilha.Célula .... = "Plan1.C2"
'' Planilha.Área ......	= "Plan1.D5:V9"
'' Célula .............	= "C3"
'' Área ...............	= "H6:K12"
'' Área Nomeada .......	= "AreaNomeada"
'' Linha ..............	= "13"
'' Faixa de Linhas ....	= "16:19"
'' Coluna ............. = "H:H"
'' Faixa de Colunas ...	= "D:U"
dim Address(0) as new com.sun.star.beans.PropertyValue
Address(0).Name = "ToPoint" : Address(0).Value = xAdd
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame _
, ".uno:GoToCell", "", 0, Address())
End Sub

Exemplo de utilização em macros…

Sub NaSuaMacro 'use este comando.
	GoToAdd "PLANILHA1" 'VAI PARA A PLANILHA1
End Sub
1 Like