Olá,
Na caixa de listagem é preciso macro, mas existem alternativas que dispensam código como:
O controle **Botão de Pressão** pode abir links também, desde que se alterem duas de suas propriedades para:
-
Ação: “Abrir documento/página da Web”
-
Link: “#Início.A1” (Exemplo: irá para/selecionará a planilha “Início” célula “A1”)
Com macro (complemento da resposta):
A macro abaixo deve ser associada ao evento " **Alterado** " das caixas de listagem **lstLocais** de **cada guia** (aba) de planilha, assumindo que:
- o conteúdo da caixa de listagem refere-se a nomes de planilhas (guias);
- cada planilha terá uma réplica da caixa de listagem lstLocais.
Sub lstLocais_Alterado( oEvento ) ' Caixa de Listagem > Eventos > Alterado
Dim olstLocais As Object, olstLocaisView As Object
Dim oDoc As Object, oControlador As Object
Dim oPlanDestino As Object
Dim sAtual As String, sEscolha As String
' Obter o Controlador
oDoc = ThisComponent
oControlador = oDoc.CurrentController
' Nome da planilha atual
sAtual = oControlador.getActiveSheet.Name
' Model (Modelo) do Listbox que disparou o evento
' Model descreve a aparência, o comportamento
' e apresenta os dados do controle
olstLocais = oEvento.Source.Model
' Escolha do usuário no listbox
sEscolha = olstLocais.CurrentValue
' Se escolher a planilha atual não fazer nada
If sEscolha = sAtual Then Exit Sub
' View (Visão) do Lisbox que disparou o evento
' View é o que usuário vê do controle e
' por onde interage através do(s) controlador(es)
olstLocaisView = oControlador.getControl( olstLocais )
' Retornar a seleção para a planilha atual "antes de sair"
olstLocaisView.selectItem( sAtual,True )
' Ir para planilha escolhida
oPlanDestino = oDoc.Sheets.getByName( sEscolha )
oControlador.setActiveSheet( oPlanDestino )
End Sub
Atte,