O EXCEL VBA trabalha com F5 - mas não será executado automaticamente quando os valores das células forem alterados

0

A fórmula do VBA funciona perfeitamente com o F5

Células da coluna E E3: E5 têm Funções que calculam um valor em dólar ou $ 0,00.

Esta é a fórmula extraída de =SUM('MEDENT Proposal - Creator'!B15*15)

Se o resultado for $ 0,00, a linha é ocultar - se for maior que 0, é reexibir

Sub hidelines2()  
      If Range("E3").Value = 0 Then  
         Rows("3:3").EntireRow.Hidden = True  
  ElseIf Range("E3").Value > 0 Then  
         Rows("3:3").EntireRow.Hidden = False  
  End If  
      If Range("E4").Value = 0 Then  
         Rows("4:4").EntireRow.Hidden = True  
  ElseIf Range("E4").Value > 0 Then  
         Rows("4:4").EntireRow.Hidden = False  
  End If  
      If Range("E5").Value = 0 Then  
         Rows("5:5").EntireRow.Hidden = True  
  ElseIf Range("E5").Value > 0 Then  
         Rows("5:5").EntireRow.Hidden = False  
  End If  
End Sub

Meu problema: não consigo fazer isso ser executado automaticamente quando os valores da célula são alterados. Tem havido algumas sugestões, mas nenhuma tem trabalhado.

    
por Ed Regis 26.01.2016 / 03:28

2 respostas

0

Você deve adicionar uma chamada ao seu sub no evento Worksheet_Calculate da planilha que deseja atualizar.

Private Sub Worksheet_Calculate()

    Call hidelines2

End Sub

É importante que você a coloque no lugar certo, veja a animação abaixo.

    
por 26.01.2016 / 07:13
0

Se você não precisa disso em grande escala, isso funcionará -

Private Sub worksheet_selectionchange(ByVal Target As Range)
    If Range("E3") = 0 Then
        Range("E3").EntireRow.Hidden = True
        Else: Range("e4").EntireRow.Hidden = False
    End If
    If Range("E4") = 0 Then
        Range("E4").EntireRow.Hidden = True
        Else: Range("e4").EntireRow.Hidden = False
    End If
     If Range("E5") = 0 Then
        Range("E5").EntireRow.Hidden = True
        Else: Range("e5").EntireRow.Hidden = False
    End If
End Sub

Não é como se você visse E3, E4 ou E5, a menos que você altere sua seleção em algum lugar da planilha. Isso não é bom para a grande escala, apesar de tudo.

Esta foi a melhor solução que pude encontrar.

    
por 26.01.2016 / 20:14