Página 1 de 1

Menu Suspenso para Navegar entre as Abas da Planilha

Enviado: 13 Set 2018 às 09:08
por maruchoa
Olá colegas, tenho um problema para ser resolvido!

Preciso clicar em uma imagem e ela abrir uma ComboBox.
Ao abrir a ComboBox, ela deverá conter um Menu DropDown contendo a lista de Abas da minha Planilha.
Eu até tenho esse código abaixo utilizando uma Caixa combinada (controle ActiveX) que está realizando essa função.
O problema é que esse código lista todas as ABAS existentes na minha Planilha e eu queria que aparecesse na lista da Caixa Combinada somente as Abas que eu quiser que apareça, entenderam. ESSA É A QUESTÃO!

CÓDIGO VBA PARA NAVEGAR ENTRE AS PLANILHAS:

Private Sub ComboBox1_Change()
'Updateby Extendoffice
If ComboBox1.ListIndex > -1 Then Sheets(ComboBox1.Text).Select
End Sub
Private Sub ComboBox1_DropButtonClick()
Dim xSheet As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
If ComboBox1.ListCount <> ThisWorkbook.Sheets.Count Then
ComboBox1.Clear
For Each xSheet In ThisWorkbook.Sheets
ComboBox1.AddItem xSheet.Name
Next xSheet
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub ComboBox1_GotFocus()
If ComboBox1.ListCount <> 0 Then ComboBox1.DropDown
End Sub

Será que somente fazendo alguma alteração neste código eu poderei então selecionar as ABAS que apareceram na minha lista da Caixa de Combinação?

Desde já agradeço a ajuda de todos!

Re: Menu Suspenso para Navegar entre as Abas da Planilha

Enviado: 13 Set 2018 às 09:51
por babdallas
Sim, é possível desde você saiba quais planilhas você deseja acrescentar ou quais você não deseja acrescentar (ou seja, acrescentando as demais). Sugiro anexar um exemplo e dizendo qual a regra listar as planilhas que você deseja.

Menu Suspenso para Navegar entre as Abas da Planilha

Enviado: 13 Set 2018 às 10:25
por ExcelFlex
Código: Selecionar todos
Private Sub ComboBox1_DropButtonClick()
Dim xSheet As Worksheet
Dim planilhasVisiveis As Variant

Dim plan As Variant 'ExcelFlex: inclusão de um array com as planilhas que você quer que apareça no combo
  planilhasVisiveis = Array("Planilha1", "Planilha2", "Planilha3", "Planilha4")

On Error Resume Next
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  If ComboBox1.ListCount <> ThisWorkbook.Sheets.Count Then
    ComboBox1.Clear
    For Each xSheet In ThisWorkbook.Sheets
      For Each plan In planilhasVisiveis
        If plan = xSheet.Name Then 'ExcelFlex: verifica se a planilha existe no combo e adiciona
          ComboBox1.AddItem xSheet.Name
        End If
      Next plan
    Next xSheet
  End If
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub
Veja se esta solução te ajuda

Re: Menu Suspenso para Navegar entre as Abas da Planilha

Enviado: 13 Set 2018 às 10:41
por maruchoa
ExcelFlex escreveu:
Código: Selecionar todos
Private Sub ComboBox1_DropButtonClick()
Dim xSheet As Worksheet
Dim planilhasVisiveis As Variant

Dim plan As Variant 'ExcelFlex: inclusão de um array com as planilhas que você quer que apareça no combo
  planilhasVisiveis = Array("Planilha1", "Planilha2", "Planilha3", "Planilha4")

On Error Resume Next
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  If ComboBox1.ListCount <> ThisWorkbook.Sheets.Count Then
    ComboBox1.Clear
    For Each xSheet In ThisWorkbook.Sheets
      For Each plan In planilhasVisiveis
        If plan = xSheet.Name Then 'ExcelFlex: verifica se a planilha existe no combo e adiciona
          ComboBox1.AddItem xSheet.Name
        End If
      Next plan
    Next xSheet
  End If
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub
Veja se esta solução te ajuda
Poxa... Perfeito!

Menu Suspenso para Navegar entre as Abas da Planilha

Enviado: 13 Set 2018 às 10:43
por maruchoa
Muito obrigado Excelflex.

Sua fórmula funcionou direitinho. Agora está listando e abrindo somente as Abas que eu especifico!
Fantástico!