Formulário VBA Excel de navegação entre planilhas

6
Formulário VBA Excel de navegação entre planilhas

Objetivo: Este artigo demonstra como adicionar um formulário VBA Excel que realize navegação entre as planilhas do Excel.

Navegar planilhas Excel 1

Neste artigo vamos apresentar uma forma mais prática, rápida e profissional de navegar entre os formulários do Excel. É tão útil que acho que deveria ser incluso na próxima versão.

Esta funcionalidade é um formulário que, quando chamado, mostra todas as planilhas, em ordem alfabética, que o arquivo Excel aberto possui, e permite que ao selecionar uma outra planilha na caixa de combinação, seja alterada a planilha selecionada.

Navegar planilhas Excel 3

No arquivo que há em anexo a este artigo tem um exemplo da utilização deste formulário na planilha de Controle de estoque, disponibilizada neste artigo: https://guiadoexcel.com.br/planilha-de-controle-de-estoque-excel como exemplo.

O código fonte deste formulário está todo comentado e livre para utilização em suas aplicações, abaixo nós veremos como adicionar ele ao PERSONAL.XLSB de modo que possa acessar este formulário de qualquer arquivo Excel, e depois como adicionar ele a apenas um arquivo Excel.

1. Faça o download do arquivo do formulário em: Navegar entre planilhas Excel VBA, e descompacte os arquivos em uma pasta de sua preferência;

2. Habilite a guia Desenvolvedor seguindo estes passos: Habilitar guia desenvolvedor no Excel;

3. Clique na guia Desenvolvedor e em PERSONAL.XLSB;

Navegar planilhas Excel 4

4. Clique em Menu->Arquivo->Importar Arquivo…, selecione o arquivo descompactado e clique em Abrir;

Navegar planilhas Excel 5

5. O formulário frmPlanilhas terá sido importado ao arquivo PERSONAL.XLSB;

Navegar planilhas Excel 6

6. Agora clique no menu Inserir->Módulo

Navegar planilhas Excel 7

7. Clique no Módulo inserido e digite o seguinte código, ele irá chamar o formulário:

Public Sub lsPesquisarPlanilhas()
    frmPlanilhas.Show
End Sub

8. Agora volte para o Excel, fechando o VBA, clicando no botão no canto superior direito X, normalmente;

9. Clique na guia Desenvolvedor e no botão Macros, selecione a macro lsPesquisarPlanilhas e no botão Opções, digitando na tecla de atalho L, maiúsculo, assim toda vez que digitar CTRL+SHIFT+L o Excel irá automaticamente chamar o formulário de navegação entre as planilhas.

Assim, o formulário estará disponível em todas as planilhas do Excel. Veja o código fonte:

Dim lFormularioVisivel As String
 
Private Sub cmbPlanilhas_Change()
    'Se o formulário anterior estivesse invisível iria torná-lo novamente invisível
    If lFormularioVisivel <> "" Then
        ActiveWorkbook.Worksheets(lFormularioVisivel).Visible = False
    End If
 
    'Identifica se o formulário é visível ou está oculto
    If ActiveWorkbook.Worksheets(cmbPlanilhas.Text).Visible = False Then
        'Armazena o nome do formulário selecionado se não estiver visível
        lFormularioVisivel = cmbPlanilhas.Text
 
        'Torna o formulário visível
        ActiveWorkbook.Worksheets(cmbPlanilhas.Text).Visible = True
 
        'Seleciona a planilha
        ActiveWorkbook.Worksheets(cmbPlanilhas.Text).Select
    Else
        'Seleciona a planilha
        ActiveWorkbook.Worksheets(cmbPlanilhas.Text).Select
    End If
End Sub
 
Private Sub cmbPlanilhas_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    'Se for pressionado a tecla ESC o sistema irá fechar o formulário
    If KeyCode = 27 Then
        cmdSair_Click
    End If
End Sub
 
Private Sub cmbPlanilhas_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'Se for pressionado a tecla ESC o sistema irá fechar o formulário
    If KeyAscii = 27 Then
        cmdSair_Click
    End If
End Sub
 
Private Sub cmdSair_Click()
    'Fecha o formulário ao clicar o botão Sair
    Unload Me
End Sub
 
Private Sub UserForm_Activate()
    Dim ini, fim As Integer
    Dim i, j As Integer
    Dim menor As String
 
    'Adiciona todas as planilhas á combo de navegação do formulário
    For i = 1 To ActiveWorkbook.Sheets.Count
        cmbPlanilhas.AddItem ActiveWorkbook.Sheets(i).Name
    Next i
 
    'Técnica booble sort para realizar a ordenação dos itens do combo
    ini = 0
    fim = cmbPlanilhas.ListCount - 1
    For i = ini To fim - 1
        For j = i + 1 To fim
            If cmbPlanilhas.List(i) > cmbPlanilhas.List(j) Then
                menor = cmbPlanilhas.List(j)
                cmbPlanilhas.List(j) = cmbPlanilhas.List(i)
                cmbPlanilhas.List(i) = menor
            End If
        Next j
    Next i
 
End Sub
 
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'Se for pressionado a tecla ESC o sistema irá fechar o formulário
    If KeyAscii = 27 Then
        cmdSair_Click
    End If
End Sub

 

Se for necessário inserir o formulário em uma única planilha é necessário seguir os seguintes passos:

1. Faça o download do arquivo do formulário em: Navegar entre planilhas Excel VBA, e descompacte os arquivos em uma pasta de sua preferência;

2. Habilite a guia Desenvolvedor seguindo estes passos: Habilitar guia desenvolvedor no Excel;

3. Clique na guia Desenvolvedor e no arquivo Excel que você tem aberto;

Navegar planilhas Excel 9

4. Clique em Menu->Arquivo->Importar Arquivo…, selecione o arquivo descompactado e clique em Abrir;

Navegar planilhas Excel 5

5. O formulário frmPlanilhas terá sido importado ao arquivo PERSONAL.XLSB;

Navegar planilhas Excel 10

6. Agora clique no menu Inserir->Módulo

Navegar planilhas Excel 7

7. Clique no Módulo inserido e digite o seguinte código, ele irá chamar o formulário:

Public Sub lsPesquisarPlanilhas()
    frmPlanilhas.Show
End Sub

8. Agora volte para o Excel, fechando o VBA, clicando no botão no canto superior direito X, normalmente;

9. Clique na guia Desenvolvedor e no botão Macros, selecione a macro lsPesquisarPlanilhas e no botão Opções, digitando na tecla de atalho L, maiúsculo, assim toda vez que digitar CTRL+SHIFT+L o Excel irá automaticamente chamar o formulário de navegação entre as planilhas.

DIGITE O SEU EMAIL PARA FAZER O DOWNLOAD DOS ARQUIVOS:

Seu nome (obrigatório)

Seu e-mail (obrigatório)

Abraço

Marcos Rieper

6 COMENTÁRIOS

  1. Olá! Achei incrível a ferramenta, tentei fazer mas dá a seguinte mensagem de erro: Erro de compilação: O tipo definido pelo usuário não foi definido.
    Aponta a linha:
    Private Sub cmbPlanilhas_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    • Boa tarde Moabia,

      Pode ser um problema de referências.

      Abra seu módulo, clique no menu Ferramentas > Referências, procure pela biblioteca marcada que estiver como AUSENTE e procure uma com o mesmo nome e provavelmente com outra versão e marque.

      Abraço
      marcos Rieper

  2. Incrível tenho varias planilhas pra navegar, acabou o problema! Parabéns
    Aliás, será que eu poderia lhe enviar a planilha para umas dicas e melhorias? É uma planilha de lançamento de ganhos por produção e com base nos parâmetros imprime uma série de relatórios para conferência, migração para sistema e recibo.

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here