EXCEL VBA funktioniert mit F5 - wird aber nicht automatisch ausgeführt, wenn Zellwerte geändert werden

EXCEL VBA funktioniert mit F5 - wird aber nicht automatisch ausgeführt, wenn Zellwerte geändert werden

Die VBA-Formel funktioniert perfekt mit F5

Spalte E Zellen E3:E5 haben Funktionen, die einen Dollarbetrag berechnenoder0,00 USD.

Dies ist die Formel, die aus =SUM('MEDENT Proposal - Creator'!B15*15)

Wenn das Ergebnis 0,00 $ beträgt, wird die Zeileverstecken-- wenn es größer als 0 ist, ist eseinblenden

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

Mein Problem:Ich kann das nicht bekommenautomatisch ausführenwenn die Zellenwerte geändert werden.
Es gab einige Vorschläge, aber keiner hat funktioniert.

Antwort1

Sie sollten Ihrem Sub im Worksheet_CalculateEreignisblatt, das Sie aktualisieren möchten, einen Anruf hinzufügen.

Private Sub Worksheet_Calculate()

    Call hidelines2

End Sub

Es ist wichtig, dass Sie es an der richtigen Stelle platziert haben, siehe Animation unten.

Bildbeschreibung hier eingeben

Antwort2

Wenn Sie das nicht im großen Maßstab brauchen, funktioniert das hier -

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

Es ist nicht so, dass Sie E3, E4 oder E5 sehen, es sei denn, Sie ändern Ihre Auswahl irgendwo auf dem Blatt. Dies ist jedoch für große Maßstäbe überhaupt nicht gut.

Das war das BesteLösung, die ich finden konnte.

verwandte Informationen