Criando um botão de alternância que oculta e exibe linhas com base em um valor de "0" em uma coluna

1

Estou tentando pesquisar código específico do VBA que me permita criar um botão de alternância e não ter tido sorte real.

Na coluna "I" da minha planilha, eu especifiquei valores que usam "0" e quero um código que oculte e reexiba as linhas que correspondam ao valor "0" na coluna "I".

Eu também tenho tentado criar um botão de alternância que, quando selecionado, ocultaria e mostraria minhas linhas. Começa da linha 7 e termina na linha 491.

Este é o código com o qual venho trabalhando, mas não tive a sorte de executá-lo corretamente. Seria muito apreciada se alguém pudesse ajudar!

Private Sub ToggleButton1_Click()
Dim xAddress As String
xAddress = "I"
If ToggleButton1.Value Then
    Application.ActiveSheet.Rows(xAddress).Hidden = True
Else
    Application.ActiveSheet.Columns(xAddress).Hidden = False
End If
End Sub

Private Sub PG1(ByVal Target As Range)
    If .Range("E7").Value = "Passed" Then
        Rows("7:491").EntireRow.Hidden = True
    End If
    ElseIf Range("E7").Value = "Failed" Then
        Rows("7:491").EntireRow.Hidden = True
    End If
End Sub
    
por G.David 06.09.2017 / 16:26

1 resposta

0

Na minha folha de teste, criei dois botões de alternância:

  • ToggleButton1 (oculta e mostra 0 na coluna I)
  • ToggleButton2 (oculta e mostra linhas 7: 491)

Aqui está o código para ambos:

Option Explicit

Private Sub ToggleButton1_Click()
    With Me
        If .ToggleButton1.Value = False Then
            If .AutoFilterMode Then .UsedRange.AutoFilter
            .ToggleButton1.Caption = "Hide 0's"
        Else
            .UsedRange.Columns(9).AutoFilter Field:=1, Criteria1:="<>0"
            .ToggleButton1.Caption = "Show 0's"
        End If
    End With
End Sub


Private Sub ToggleButton2_Click()
    Dim e7 As String, changed As Boolean

    With Me
        e7 = .Range("E7").Value2
        If .ToggleButton2.Value = False Then
            .Rows("7:491").EntireRow.Hidden = False
            .ToggleButton2.Caption = "Hide Rows"
        Else
            changed = (e7 = "Passed" Or e7 = "Failed")
            .Rows("7:491").EntireRow.Hidden = changed
            If changed Then .ToggleButton2.Caption = "Show All Rows"
        End If
    End With
End Sub

Ao ocultar e exibir linhas com botões, os botões podem ser movidos ou ocultados para que

No modo de design:

  • Clique com o botão direito em cada botão
  • Selecione Format Control
  • Ir para a 3ª guia (Propriedades)
  • Selecione "Não mover ou dimensionar com células"
por 07.09.2017 / 01:04