Notifications
Clear all

Automatizar macro de ocultar e exibir linhas

4 Posts
3 Usuários
0 Reactions
712 Visualizações
(@manxonildo)
Posts: 0
New Member
Topic starter
 

Boa tarde a todos!!

Tenho uma planilha de controle de despesas de acordo com o ano que funciona bem com o código abaixo.

Sub Ocultar()

Application.ScreenUpdating = False

Dim i As Integer

For i = 1 To 70
Rem Coluna e Valor - neste exemplo Coluna A e valor = 8
If Range("A" & i).Value <> Cells(1, 1) Then
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = True
Else
End If
Next i
End Sub
-----------------
Sub Mostrar()
Cells.Select
Selection.EntireRow.Hidden = False
Range("B1").Select
End Sub

De acordo com o ano escolhido na célula A1, ele oculta as linhas dos outros anos. Para isso, tenho dois botões que executam as macros de Ocultar e Mostrar.

O que eu queria é o seguinte: Fazer esse macro com worksheet_change na célula A1, fazendo que só de escolher o ano na lista suspensa, já oculte todas as outras linhas dos outros anos. É possivel??

Obrigado desde já a quem puder ajudar!

 
Postado : 29/12/2015 8:49 am
(@mprudencio)
Posts: 0
New Member
 

Ja tentou colocar os codigo dentro do evento ?

 
Postado : 29/12/2015 9:26 am
(@manxonildo)
Posts: 0
New Member
Topic starter
 

Já sim, não funcionou :/

 
Postado : 29/12/2015 9:28 am
(@edsonbr)
Posts: 0
New Member
 

Boa tarde, Manxonildo!
Coloque então lá no evento Change:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A1")) Is Nothing Then
    Dim i As Integer
    For i = 1 To 70
      Rem Coluna e Valor - neste exemplo Coluna A e valor = 8
      If Range("A" & i).Value <> Target.Value Then
        Rows(i).Hidden = True
      Else
        Rows(i).Hidden = False
      End If
    Next i
    Target.Select
  End If
End Sub

E continue a deixar a macro "Mostrar" lá no módulo onde está.

Nos conte o resultado.

Boas festas pro colega!

 
Postado : 29/12/2015 1:17 pm