Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#37539
Bom dia pessoal!

Tenho uma grande quantidade de planilhas e preciso exibi-las de uma forma mais otimizada.
Pensei em, por exemplo, uma seleção alfabética, todas que começam com a letra "A", ocultando as demais, depois todas com a letra B, também ocultando as demais, e assim por diante.
Pensei o código dessa forma, mas se houver outra mais inteligente, blz!
Código: Selecionar todos
Sub selecionarAlfabeticamente()
Dim j As Worksheet

    For Each j In ActiveWorkbook.Worksheets
        
'Essa linha de código não sei construir ... 
        j.Visible = xlSheetHiddem
        
    Next j
        ' Após o laço for, exibe-se somente as que precisam ser trabalhadas.
    Worksheets("ESCOLHA").Activate
    Worksheets("A.....").Select.Visible = True
    Worksheets("A.....").Select.Visible = True
    
    
    
End Sub
#37543
aleksander escreveu: Tenho uma grande quantidade de planilhas e preciso exibi-las de uma forma mais otimizada.
O que exatamente você quer dizer com "forma mais otimizada" ?
Qual o resultado desejado ?
#37550
Olá Osvaldo,

Primeiramente, muito obrigado pela ajuda.

Ao preencher os dados em cada planilha, pela quantidade delas, 51 no total; (e cada uma referente as notas de um aluno cuja planilha leva o nome dele, por exemplo,) tem-se de ficar percorrendo a paleta de um lado para o outro até chegar a planilha desejada.

Pretendi criar diversas macros, cada uma delas acionada por um botão, a macro referente a letra "A" oculta todas as planilhas; mas deixa somente aquela cujos nomes iniciam com a letra A, que são no caso 4 planilhas. O resultado será a exibição de somente 4 planilhas ao invés de 51, ficando mais fácil para o preenchimento; e assim com todas as letras do alfabeto...

Espero ter sido claro
Grato
#37551
Osvaldo acho que consegui...
Código: Selecionar todos
Sub selecionarAlfabeticamente()

    Dim j As Worksheet
    Dim letraA As String
        
    letraA = "A"
    
   
    For Each j In Application.ActiveWorkbook.Worksheets
        If Left(j.Name, 1) <> Left(letraA, 1) Then
            j.Visible = xlSheetHidden
    End If
    
    Next  j
    
End Sub
Mas se você tiver uma ideia, agradeço!
#37552
Osvaldo boa noite!

Pensei ter resolvido o código, mas encontra erro com frequência... funcionou uma, ou outra vez de resto trava.
Código: Selecionar todos
Sub selecionarA()

    Dim j As Worksheet
    Dim letraA As String
        
    letraA = "A"
    
   
    For Each j In Application.ActiveWorkbook.Worksheets
        
        If Left(j.Name, 1) <> Left(letraA, 1) Then
                
            j.Visible = xlSheetHidden
            
        End If
    
    Next
    
    Worksheets("ESCOLHA").Visible = True
    Worksheets("DADOS").Visible = True
    
    
End Sub
#37560
Olá, Aleksander.
O código abaixo deixará visíveis somente as planilhas cujo nome se inicie com "a" ou com "A".
Código: Selecionar todos
Sub selecionarA()
 Dim j As Worksheet
  For Each j In ThisWorkbook.Worksheets
   j.Visible = (UCase(Left(j.Name, 1)) = "A")
  Next j
End Sub
Para dotar o código de flexibilidade no sentido de permitir ao usuário escolher a letra inicial do nome das planilhas, pode-se incluir no início do código uma caixa de entrada para receber a letra ou receber o primeiro nome.

Como alternativa, segue uma ideia. Pode-se elaborar um outro código para listar e ordenar os nomes de todas as planilhas do arquivo, por exemplo na coluna A da planilha ESCOLHA, mantendo somente determinadas planilhas como visíveis, e aí o usuário clicaria sobre o nome da lista para acessar a respectiva planilha, e após consultar/editar, duplo clique em alguma célula para ocultá-la novamente.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord