Tenha em mãos as Melhores Planilhas! Paulo
Como Transformar Formulário VBA Excel de navegação Entre Planilhas!
Como Transformar Formulário VBA Excel de navegação Entre Planilhas!
Como Transformar um formulário VBA Excel que realize navegação entre as planilhas do Excel.
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.
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: http://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;
6. Agora clique no menu Inserir->Módulo
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.
Como Transformar Formulário VBA Excel de navegação Entre 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;
Como Transformar Formulário VBA Excel de navegação Entre Planilhas!
3. Clique na guia Desenvolvedor e no arquivo Excel que você tem aberto;
4. Clique em Menu->Arquivo->Importar Arquivo…, selecione o arquivo descompactado e clique em Abrir;
5. O formulário frmPlanilhas terá sido importado ao arquivo PERSONAL.XLSB;
6. Agora clique no menu Inserir->Módulo
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.
Informe seu e-mail para o download do arquivo.
Como Transformar Formulário VBA Excel de navegação Entre Planilhas!
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.