Menu Suspenso para Navegar entre as Abas da Planilha


#1

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!


#2

Bom dia, veja se te atende:

Option Explicit: Option Compare Text
Private Sub ComboBox1_Change()
'Updateby Extendoffice
If ComboBox1.ListIndex > -1 Then Sheets(ComboBox1.Text).Select
End Sub
Private Sub ComboBox1_DropButtonClick()
Dim exclusao_1, exclusao_2 As String
exclusao_1 = "Fev"
exclusao_2 = "Mar"
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
If xSheet.Name <> exclusao_1 And xSheet.Name <> exclusao_2 Then
ComboBox1.AddItem xSheet.Name
End If
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

DropDown com Condição.xlsm (26,8 KB)


#3

Opa, funcionou sim.

Muito obrigado!