Executar automaticamente a macro VBA sempre que um valor de célula é alterado

1

Eu tenho uma macro que funciona perfeitamente - exceto que eu tenho que executá-lo manualmente.
Não consigo descobrir como executá-lo automaticamente quando altero valores em outras células.

Sub MonthlyMaintHideRowsWithZeroDollars()

' This Macro reads down the dollar column and hides rows with $0 
' so that they do not pull into the proposal

    If Range("B7").Value = "Hide" Then
        Rows("7:7").EntireRow.Hidden = True
    ElseIf Range("B7").Value = "Show" Then
        Rows("7:7").EntireRow.Hidden = False    
    End If
End Sub
Ed Regis
fonte

Respostas:

0

Você está procurando pelo Worksheet_change evento

Ocorre quando as células na planilha são alteradas pelo usuário ou por um link externo.

Exemplo

Sub Worksheet_Change(ByVal Target As Range)
    If Range("B7").Value = "Hide" Then
        Rows("7:7").EntireRow.Hidden = True
    ElseIf Range("B7").Value = "Show" Then
        Rows("7:7").EntireRow.Hidden = False    
    End If
End Sub
nixda
fonte
Socorro Isso funciona quando eu o executo, mas não é executado automaticamente quando uma célula vinculada é alterada. Estou preso. Obrigado, Ed Private Sub Worksheet_Change (ByVal Destino como intervalo) End Sub Sub MonthlyMaintHideRowsWithZeroDollars () '' MonthlyMaintHideRowsWithZeroDollars Macro 'Linha de macro com $ 0' Se Range ("B3"). Value = "Hide" Then Rows ("3: 3") .EntireRow.Hidden = Verdadeiro ElseIf Range ("B3"). Value = "Mostrar" Então Linhas ("3: 3"). EntireRow.Hidden = False End If End Sub
Ed Regis
@EdRegis Você tem que inserir sua instrução IF entre o sub e end sub parte. Editei o post
nixda
Eu tentei o que você sugeriu - a macro ainda funciona quando eu executá-lo manualmente Ele só não quer correr automaticamente quando eu digito ocultar em B7 ????? Talvez haja uma opção que eu precise ativar para que as macros sejam executadas automaticamente além: Private Sub Worksheet_Change (ByVal destino como intervalo) End Sub
Ed Regis