Notifications
Clear all

Identificar sheet preenchida e ocultar as demais

7 Posts
2 Usuários
0 Reactions
1,033 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde todos,

Utilizo uma planilha em Excel com 70 sheets iguais para auditar procedimento em salas de treinamento. Elas são numeradas, idênticas e sequenciais (de 1 a 70). Pela quantidade de planilhas, é inviável mante-las visíveis.
Gostaria de uma rotina onde fosse possível identificar a última preenchida e exibisse a próxima. Por exemplo, se a 22 é a próxima em branco, todas as devem estar ocultas. Existem campos obrigatórios nas planilhas que não podem ficar em branco e poderão ser utilizados para identificação do preenchimento.

Aguardo e agradeço!

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

 
Postado : 24/05/2018 2:47 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

E quais são esses campos?

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 24/05/2018 2:57 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

E quais são esses campos?

Bom dia,

O campo 'Nome do Treinador', por exemplo. É um campo obrigatório e em todas as sheets fica na célula C4

Obrigado mais uma vez!

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

 
Postado : 25/05/2018 5:17 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Tente algo tipo isso:

Ocultar vazias:

Sub Ocultar()
Application.ScreenUpdating = False
For i = 1 to 70
If Sheets(i).range("C4").value = "" Then
Sheets(i).Visible = False
End If
Next i
Application.ScreenUpdating = True
End Sub

Mostrar tudo novamente:

Sub Mostrar_tudo()
For i = 1 to 70
Sheets(i).Visible = True
Next i
End Sub

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 25/05/2018 6:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Xlarruda,

Nos testes que fiz, a rotina ocultou todas as planilhas em branco e deixou as preenchidas visíveis. Gostaria, se possível, que apenas a próxima vazia ficasse visível.

Por exemplo: digamos que as planilhas de 1 a 24 estão preenchidas. A rotina deve identificar isso para exibir a 25, que é a próxima vazia e ocultar todas as outras, preenchidas ou não.

Dessa forma, as planilhas de 1 a 24 ficariam ocultas, a 25 ficaria visível e da 26 até a 70 ficariam ocultas também.

Obrigado mais uma vez!

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

 
Postado : 25/05/2018 7:05 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!

Veja se atende:

Sub OcultarMenos1()
    Dim Pl As Worksheet
    Dim i As Integer
    
    Application.ScreenUpdating = False
    For Each Pl In Worksheets
        Pl.Visible = xlSheetVisible
        If Pl.[C4].Value <> "" Then i = Pl.Index
    Next
    
    For Each Pl In Worksheets
        If Pl.Index <> i + 1 Then Pl.Visible = xlSheetHidden
    Next
    Application.ScreenUpdating = True
End Sub

Abraço

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

 
Postado : 25/05/2018 7:11 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Perfeito!!! Muito obrigado, JValq. Abraços

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

 
Postado : 25/05/2018 7:41 am