Notifications
Clear all

Listagem de planilhas

6 Posts
3 Usuários
0 Reactions
2,335 Visualizações
(@jaimeboueri)
Posts: 3
Active Member
Topic starter
 

Senhores, tenho uma planilha que criei,onde há uma caixa de listagem que navega entre as abas (planilhas) existentes. O problema é que quando se abre o arquivo, ela não funciona, e só começa a funcionar quando eu navego manualmente em uma guia. O que esta errado na macro?

A Macro tá aí embaixo. Alguma dica?

---

Private Sub cbo_ExibePlanilha_Change()
On Error GoTo Erro

'Se não for vazio
If cbo_ExibePlanilha.Text <> "" Then
'Seleciona a planilha escolhida
ThisWorkbook.Worksheets(cbo_ExibePlanilha.Text).Select
End If

Exit Sub
Erro:
MsgBox Err.Description
Exit Sub
End Sub

Private Sub Worksheet_Activate()
On Error GoTo Erro
Dim sh As Worksheet

'Limpa a combo
cbo_ExibePlanilha.Clear

'Lista todas as planilhas
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> ActiveSheet.Name Then
cbo_ExibePlanilha.AddItem sh.Name
End If
Next sh

Exit Sub
Erro:
MsgBox Err.Description
Exit Sub
End Sub

 
Postado : 24/10/2012 11:30 am
(@jaimeboueri)
Posts: 3
Active Member
Topic starter
 

Também serve uma lista suspensa (aquela por validação) que, ao clicar, abre uma outra planilha...

Alguém sabe como fazer?

 
Postado : 24/10/2012 11:45 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

jaimeboueri,

Boa Tarde!

Está quase tudo certo com seu cóidigo. Apenas há a necessidade de fazer pequena alteração no código que carrega os nomes das planilhas na caixa de listagem e também o local e o evento onde está atualmente. O objeto (local) correto é a Workbook e o evento correto é o Open.

Desse modo, apague aquele código que está no eprocedimento Private Sub Worksheet_Activate() e insira o código abaixo no procedimento Workbook_Open:

Veja que no meu teste, estou utilizando o nome da Plan1. Modifique para refletir o nome da sua planilha.

Private Sub Workbook_Open()
    On Error GoTo Erro
    Dim sh As Worksheet
    
    'Limpa a combo
    Worksheets("Plan1").cbo_ExibePlanilha.Clear
    
    'Lista todas as planilhas
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> ActiveSheet.Name Then
            Worksheets("Plan1").cbo_ExibePlanilha.AddItem sh.Name
        End If
    Next sh
    
    Exit Sub
Erro:
    MsgBox Err.Description
    Exit Sub
End Sub

Baixe a planilha e veja como fiz.

 
Postado : 24/10/2012 1:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Jaime, de uma olhada nestes Tópicos :

Macro para listar e abrir guias de uma planilha
viewtopic.php?f=16&t=1019

Criar Form de busca de Plan (aba) [Resolvido]
viewtopic.php?f=23&t=5871&p=30660&hilit=abas#p30660

Planilha - Usuário e permissões
viewtopic.php?f=10&t=3439&p=15990&hilit=senha+e+usu%C3%A1rio#p15990

[]s

 
Postado : 24/10/2012 6:22 pm
(@jaimeboueri)
Posts: 3
Active Member
Topic starter
 

Poxa, como o Wagner falou, está tudo certo, funcionando. Mas não é do jeito que eu quero. Queria não listar todas as abas existentes, e sim, somente algumas (a partir de uma listagem que eu monte, talvez) e, ao selecionar, ir para a planilha.

Outro problema. Deste modo que estou usando, algumas máquinas do meu trabalho, quando abrem o arquivo a Macro não funciona,pois não deve estar habilitada. Há algum código que eu insira que habilite a macro e os links na máquina que abre o arquivo?

 
Postado : 30/10/2012 8:58 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

jaimeboueri,

Bom Dia!

Com o código acima é perfeitamente possível você selecionar somente as planilhas que quer. Todavia, para isso, é necessário você dizer, qual é o nome das abas (Plan1, Plan2... etc) que você quer selecionar para serem citadas no código.

Com relação a questão de habilitar as macros na hora em que o arquivo for aberto, se tiver utilizando o Excel 2007 ou 2010, basta que você crie um local confiável nas máquinas onde você pretende abrir os arquivos que contém macros e colocar nesse local todos os arquivos que possuem macros. Fazendo isso, o Excel não perguntará, habilitará automaticamente as macros e abrirá normalmente o arquivo.

Para definir locais no Excel abra a ajuda do próprio Excel e digite "Local Confiável".

 
Postado : 31/10/2012 5:44 am