Notifications
Clear all

Macro Ir para Planilha

12 Posts
2 Usuários
0 Reactions
2,085 Visualizações
Charlie-81
(@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.

Blue eye | MB Intel Extreme DX58SO | Termaltake 775W | I7 950 LGA 1366 (Overclock 5.3 GZ) | Corsair Vengeance 16 GB | WC Corsair H70 | Aerocool Touch 2000 | Razer Mamba 4G | Som Volcano 50W RMS | Cooler Zalmam | HD 2TB | Radeon HD 8670 | Monitor 32'

 
Postado : 02/07/2012 5:06 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

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

Bom dia Charlie

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

Um abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/07/2012 6:18 am
Charlie-81
(@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.

Blue eye | MB Intel Extreme DX58SO | Termaltake 775W | I7 950 LGA 1366 (Overclock 5.3 GZ) | Corsair Vengeance 16 GB | WC Corsair H70 | Aerocool Touch 2000 | Razer Mamba 4G | Som Volcano 50W RMS | Cooler Zalmam | HD 2TB | Radeon HD 8670 | Monitor 32'

 
Postado : 02/07/2012 6:27 am
Charlie-81
(@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?

Blue eye | MB Intel Extreme DX58SO | Termaltake 775W | I7 950 LGA 1366 (Overclock 5.3 GZ) | Corsair Vengeance 16 GB | WC Corsair H70 | Aerocool Touch 2000 | Razer Mamba 4G | Som Volcano 50W RMS | Cooler Zalmam | HD 2TB | Radeon HD 8670 | Monitor 32'

 
Postado : 02/07/2012 6:29 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/07/2012 6:33 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/07/2012 6:47 am
Charlie-81
(@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.

Blue eye | MB Intel Extreme DX58SO | Termaltake 775W | I7 950 LGA 1366 (Overclock 5.3 GZ) | Corsair Vengeance 16 GB | WC Corsair H70 | Aerocool Touch 2000 | Razer Mamba 4G | Som Volcano 50W RMS | Cooler Zalmam | HD 2TB | Radeon HD 8670 | Monitor 32'

 
Postado : 02/07/2012 7:11 am
Fernando Fernandes
(@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
....

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/07/2012 7:42 am
Fernando Fernandes
(@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.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

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

Veja como ficaria utilizando o " * "

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

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

perfeito Reinaldo.

Blue eye | MB Intel Extreme DX58SO | Termaltake 775W | I7 950 LGA 1366 (Overclock 5.3 GZ) | Corsair Vengeance 16 GB | WC Corsair H70 | Aerocool Touch 2000 | Razer Mamba 4G | Som Volcano 50W RMS | Cooler Zalmam | HD 2TB | Radeon HD 8670 | Monitor 32'

 
Postado : 02/07/2012 3:22 pm