Notifications
Clear all

Macro Ir para Planilha

12 Posts
2 Usuários
0 Reactions
2,079 Visualizações
(@charlie-81)
Posts: 290
Reputable Member
Topic starter
 

Olá,

Bom dia!

Encontrei o modelo da planilha em anexo na internet. Ela lista todas as outras planilhas da pasta de trabalho. Acontece que, ao iniciar o excel, essa lista não é carregada, só após eu navegar por uma das planilhas da pasta e retornar à página inicial, é que as planilhas são listadas.Queria saber o que preciso alterar no código para que essas planilhas sejam listadas ao iniciar.

 
Postado : 02/07/2012 5:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue 2 opções :
1ª Simulando "navegar" entre planilhas; para assim "ativar" a rotina no sheet activate

Private Sub Workbook_Open()
Application.ScreenUpdating = False
[Plan7].Select
[Plan1].Select
Application.ScreenUpdating = True
End Sub

2ª "Fazendo" o carregamento do combo na abertura do arquivo:

Private Sub Workbook_Open()
On Error GoTo Erro
Dim sh As Worksheet
    
    Sheets("PlanInicio").cbo_ExibePlanilha.Clear
    
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> ActiveSheet.Name Then
            Sheets("PlanInicio").cbo_ExibePlanilha.AddItem sh.Name
        End If
    Next sh


Exit Sub
Erro:
    MsgBox Err.Description
    Exit Sub
End Sub
 
Postado : 02/07/2012 6:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Charlie

Para você ter mais uma opção, segue um exemplo sem combo:

Um abraço.

 
Postado : 02/07/2012 6:18 am
(@charlie-81)
Posts: 290
Reputable Member
Topic starter
 

Perfeito Reinaldo, funcionou como queria. Uma outra questão:

Como eu faço para que esta listagem seja apenas a determinadas planilhas? Tipo, tenho 10 planilhas na pasta de trabalho, porém, quero que apenas 5 sejam listadas.

 
Postado : 02/07/2012 6:27 am
(@charlie-81)
Posts: 290
Reputable Member
Topic starter
 

Bom dia Charlie

Para você ter mais uma opção, segue um exemplo sem combo:

Um abraço.

Patropi... muito massa viu... te perguntar, como vc fez para ocultar a listagem das planilhas que aparecem abaixo da pasta de trabalho?

 
Postado : 02/07/2012 6:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Posso está enganado por não entender mas, crie um Array.

Worksheets(Array("Plan1", "Plan2", "Plan3", "Plan4", "Plan5")).Select
 
Postado : 02/07/2012 6:33 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Existem varia formas para se carregar informações em um combo.
O exemplo da sua planilha "varre" todas planilhas existente no arquivo e inclue esse nome no combo.
Para incluir somente alguns nomes, é necessario informar quais.
2 possibilidades:
utilizando parte do codigo existente:

Private Sub Workbook_Open()
On Error GoTo Erro
Dim sh As Worksheet
    Sheets("PlanInicio").cbo_ExibePlanilha.Clear
     For Each sh In ThisWorkbook.Worksheets
        If sh.Name = "Matemática" Or sh.Name = "Biologia" Then
            Sheets("PlanInicio").cbo_ExibePlanilha.AddItem sh.Name
        End If
    Next sh
Exit Sub
Erro:
    MsgBox Err.Description
    Exit Sub
End Sub

ou

Private Sub Workbook_Open()
    
Sheets("PlanInicio").cbo_ExibePlanilha.Clear
    
Sheets("PlanInicio").cbo_ExibePlanilha.AddItem "Física"
Sheets("PlanInicio").cbo_ExibePlanilha.AddItem "Geografia"

End Sub
 
Postado : 02/07/2012 6:47 am
(@charlie-81)
Posts: 290
Reputable Member
Topic starter
 

Um salve especial para o alexandrevba, Reinaldo e Patropi. As suas dicas são excelentes. Parabéns pela sabedoria e continuem contribuindo para o pessoal que acessa o Planilhando. Todas as dicas foram e são extremamente úteis.

- Uma outra questão: Na planilha que estou montando, existe uma planilha que é gerada a partir do preenchimento de outra. Como então fazer para que essa busca seja apenas nestas planilhas que são criadas, haja vista que parte dos nomes das planilhas são diferentes.

 
Postado : 02/07/2012 7:11 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pode-se utilizar a seleção baseada em uma range de planilha (onde as planilhas desejadas são "cadastradas");
ou mesmo "pesquisando" por parte do nome, utilizando o caractere coringa "*" (asterisco)
Algo assim (qq nome que começe com EP):

....
If sh.Name like "EP*" Then
            Sheets("PlanInicio").cbo_ExibePlanilha.AddItem sh.Name
        End If
....
 
Postado : 02/07/2012 7:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Charlie

Patropi... muito massa viu... te perguntar, como vc fez para ocultar a listagem das planilhas que aparecem abaixo da pasta de trabalho?

Eu apenas cliquei com mouse no lado direito, encostado na barra de rolagem e arrastei até cobrir o nome das Abas.

Dá para fazer esse esquema de acessar as outras planilhas através de botão sem utilizar macros, apenas usando hiperlink.
Se quiser eu anexo um exemplo.

Se a resposta foi útil clique na mãozinha que fica ao lado da ferramenta Citar.

Um abraço.

 
Postado : 02/07/2012 11:39 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja como ficaria utilizando o " * "

 
Postado : 02/07/2012 12:15 pm
(@charlie-81)
Posts: 290
Reputable Member
Topic starter
 

perfeito Reinaldo.

 
Postado : 02/07/2012 3:22 pm