Ir ao conteúdo
  • Cadastre-se

Excel ocultar e reexibir linhas em determinado intervalo


Ir à solução Resolvido por Jmbs,

Posts recomendados

11 horas atrás, Jmbs disse:

1 - Não aplanilha 5 não consigo ocultar os valores conforme o critério;

Experimente os dois códigos abaixo no lugar dos atuais.

 

2 - Gostaria de juntar as 3 variaveis em um modulo só...

O que seriam essas "3 variáveis" ?

 

 

Sub OcultarLinha()
 Dim Linha As Long, LinhaFinal As Long
  LinhaFinal = Cells(Rows.Count, 2).End(3).Row
  Application.ScreenUpdating = False
  For Linha = 2 To LinhaFinal
   Rows(Linha).EntireRow.Hidden = Range("B" & Linha) = "Vencida"
  Next Linha
End Sub

 

Sub LinhaReexibir()
 Rows.Hidden = False
End Sub

 

obs. antes de testar remova o espaço existente no final da palavra "Vencida" em todas as células

Link para o comentário
Compartilhar em outros sites

@osvaldomp

 

Muito obrigado, dificuldade 1 resolvida.

Com relação a 2 dificuldade, não me expressei corretamente. Digo, as três planilhas vou utilizar macro com a mesma função, ocultar e reexibir linhas, porém em intervalos diferente. Ao invés de abrir três macro separadas posso ter só uma macro ?

 

Att

Link para o comentário
Compartilhar em outros sites

Veja se ajuda.

Esta solução utiliza um botão em cada planilha e um código único. Siga a sequência abaixo.

 

1. instale uma cópia do código abaixo em um módulo comum, por exemplo no Módulo1

2. insira em qualquer das planilhas, por exemplo na Planilha4, um botão Controles de Formulário (não ActiveX, como os atuais)

3. vincule o botão inserido à macro OcultaReexibeLinhas (referente ao código abaixo)

4. clique com o direito sobre o botão / Copiar / cole uma cópia dele na Planilha5 e cole outra cópia na Planilha6

 

obs. não é necessário alterar manualmente o rótulo do botão, pois o código irá alterar após o primeiro clique


 

Sub OcultaReexibeLinhas()
 Dim linha As Long
  Application.ScreenUpdating = False
  Rows.Hidden = False
  If ActiveSheet.Buttons(Application.Caller).Caption = "REEXIBIR LINHAS" Then
   ActiveSheet.Buttons(Application.Caller).Caption = "OCULTAR LINHAS"
   Exit Sub
  Else
   If ActiveSheet.Name = "Planilha4" Then
    For linha = 2 To Cells(Rows.Count, 1).End(3).Row
     Rows(linha).EntireRow.Hidden = Cells(linha, 1) = 0
    Next linha
   ElseIf ActiveSheet.Name = "Planilha5" Then
    For linha = 2 To Cells(Rows.Count, 2).End(3).Row
     Rows(linha).EntireRow.Hidden = Cells(linha, 2) = "Vencida"
    Next linha
   ElseIf ActiveSheet.Name = "Planilha6" Then
    For linha = 2 To Cells(Rows.Count, 3).End(3).Row
     Rows(linha).EntireRow.Hidden = Cells(linha, 3) = 0
    Next linha
   End If
  End If
  ActiveSheet.Buttons(Application.Caller).Caption = "REEXIBIR LINHAS"
End Sub

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, osvaldomp disse:

Veja se ajuda.

Esta solução utiliza um botão em cada planilha e um código único. Siga a sequência abaixo.

 

1. instale uma cópia do código abaixo em um módulo comum, por exemplo no Módulo1

2. insira em qualquer das planilhas, por exemplo na Planilha4, um botão Controles de Formulário (não ActiveX, como os atuais)

3. vincule o botão inserido à macro OcultaReexibeLinhas (referente ao código abaixo)

4. clique com o direito sobre o botão / Copiar / cole uma cópia dele na Planilha5 e cole outra cópia na Planilha6

 

obs. não é necessário alterar manualmente o rótulo do botão, pois o código irá alterar após o primeiro clique


 


Sub OcultaReexibeLinhas()
 Dim linha As Long
  Application.ScreenUpdating = False
  Rows.Hidden = False
  If ActiveSheet.Buttons(Application.Caller).Caption = "REEXIBIR LINHAS" Then
   ActiveSheet.Buttons(Application.Caller).Caption = "OCULTAR LINHAS"
   Exit Sub
  Else
   If ActiveSheet.Name = "Planilha4" Then
    For linha = 2 To Cells(Rows.Count, 1).End(3).Row
     Rows(linha).EntireRow.Hidden = Cells(linha, 1) = 0
    Next linha
   ElseIf ActiveSheet.Name = "Planilha5" Then
    For linha = 2 To Cells(Rows.Count, 2).End(3).Row
     Rows(linha).EntireRow.Hidden = Cells(linha, 2) = "Vencida"
    Next linha
   ElseIf ActiveSheet.Name = "Planilha6" Then
    For linha = 2 To Cells(Rows.Count, 3).End(3).Row
     Rows(linha).EntireRow.Hidden = Cells(linha, 3) = 0
    Next linha
   End If
  End If
  ActiveSheet.Buttons(Application.Caller).Caption = "REEXIBIR LINHAS"
End Sub

 

@osvaldomp

 

Muito obrigado.

Exatamente isso que eu buscava, porém, não sabia aplicar, mais com a sua didática ficou fácil.

 

A titulo de aprendizado, gostaria que você me explicasse qual a função e vinculo desse 3.407159371_Atribuio.JPG.a907665d8011e573a886a7e99de8fd4e.JPG

 

Att

Link para o comentário
Compartilhar em outros sites

No seu arquivo do post #1, no Módulo1, na sub OcultarLinha você colocou este comando ~~~> Range("B28").End(xlUp).Row

que também pode ser escrito assim ~~~> Range("B28").End(3).Row

 

Em lugar de xlToLeft, xlToRight, xlUp e xlDown você pode utilizar respectivamente os números 1, 2, 3 e 4.

Link para o comentário
Compartilhar em outros sites

  • Solução
18 minutos atrás, osvaldomp disse:

No seu arquivo do post #1, no Módulo1, na sub OcultarLinha você colocou este comando ~~~> Range("B28").End(xlUp).Row

que também pode ser escrito assim ~~~> Range("B28").End(3).Row

 

Em lugar de xlToLeft, xlToRight, xlUp e xlDown você pode utilizar respectivamente os números 1, 2, 3 e 4.

@osvaldomp

 

Meus sinceros agradecimentos pela gama de esclarescimentos.

 

Att

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!