Boa tarde,
pessoal estou precisando de uma macro para exibir/ocultar uma aba especifica de uma planilha, por exemplo: tenho uma planilha com 3 abas; Plan1, Plan2 e Plan3, quero apenas exibir/ocultar a Plan2.
Encontrei outra forma de ocultar uma guia especifica,
Sub Ocultar
ThisComponent.Sheets.GetByName(“nome da planilha”).IsVisible = False '(para ocultar)
end Sub
.
Sub Mostrar
ThisComponent.Sheets.GetByName(“nome da planilha”).IsVisible = True '(para exibir)
ens Sub
.
Oi @JúnioVieira, segue as macros e arquivo teste
sub OcultarAba2
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 = "aTableName"
args1(0).Value = "Planilha2" '<=========== aqui é o nome da aba.
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, Array())
end sub
.
sub MostrarAba2
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 = "aTableName"
args1(0).Value = "Planilha2" '<=========== aqui é o nome da aba.
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
end sub
Bom dia Gilberto, é exatamente o que eu precisava, obrigado.
Ola @JúnioVieira, por gentileza, click na bolinha a esquerda da resposta, para finalizar a pergunta.
@Gilberto Schiavinatto, por favor, pq para ocultar tem que utlizar o número da aba e para mostrar pode ser usado o nome da aba? pois eu preciso que funcione pelo nome da aba, e só funciona se coloco o número dela…no aguardo, agradeço!
@JúnioVieira, ok, acerto feito. a macro Ocultar e Mostrar são identicas exceto a penultima linha “uno:Hide” = ocultar e “uno:Show” mostrar.
Olá @JúnioVieira, segue uma versão de macro 2007 acima, que funciona perfeitamente no libreoffice e para versões da Microsoft também.
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub Ocultar_Sheets ()
Worksheets("Plan1").Visible = False
Worksheets("Plan2").Visible = False
Worksheets("Plan3").Visible = False
End Sub
Sub Reexibir_Sheets ()
Worksheets("Plan1").Visible = True
Worksheets("Plan2").Visible = True
Worksheets("Plan3").Visible = True
End Sub
Observação: Copie deste a frase Rem Attribute VBA_ModuleType=VBAModule
Boa noite,
Veja se é isso que procura:
Sub OcultarGuias
Dim oControlador As Object
oControlador = ThisComponent.CurrentController
oControlador.SheetTabs = False
End Sub
Sub ExibirGuias
Dim oControlador As Object
oControlador = ThisComponent.CurrentController
oControlador.SheetTabs = True
End Sub
Atte,
ola @JúnioVieira, creio que estas macros possam ser úteis também, veja aqui Personalizando Calc como Aplicativo - II
Gilberto obrigado pela sua resposta, porém não me expressei corretamente. O que realmente estou precisando é exibir/ocultar uma aba de planilha especifica, por exemplo: tenho Plan1, Plan2 e Plan3, quero apenas exibir/ocultar a Plan2. Entendeu?