Clever-Excel-Forum

Normale Version: Zeilen automatisch ausblenden, wenn Bedingung erfüllt.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe eine Tabelle, die sich automatisch füllt. In der Zelle E55 wird ein Betrag errechnet, der entweder positiv oder negativ ist.

Sollte der Wert in E55 negativ werden, so sollen die Zeilen 58 bis 63 ausgeblendet werden. Folgenden Code habe ich verwendet:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$55" Then _
  Range("58:63").EntireRow.Hidden = Target < "0"
End Sub

Leider werden die Zeilen 58 bis 63 nicht automatisch ausgeblendet, wie von mir erhofft. Nur wenn ich die negative Zahl in der Zelle E55 mit Enter bestätige, werden die Zeilen ausgeblendet.

Da der Blattschutz aktiv sein soll, suche ich eine Lösung, bei der die Zellen 58-63 automatisch -ohne Bestätigung durch Enter- ausgeblendet werden.

Hat hier jemand eine Idee, wie ich den Code anpassen könnte.

Vielen Dank
Hallo,

nimm statt des Change- das Calculate-Ereignis.
Code:
Private Sub Worksheet_Calculate()
  Range("58:63").EntireRow.Hidden = Range("$E$55").Value < 0
End Sub

Gruß Uwe
Hallo Uwe,

grds. würde es funktionieren.

Beim Testen sind leider folgende Fehler aufgetreten:

"Nicht genügend Stapelspeicher" oder
"Die Hidden Eigenschaft der Range Objekte kann nicht festgelegt werden"

In der Tabelle kann man auch einige Werte ändern, die Auswirkungen auf die Zelle E55 haben. Bei Änderungen dieser Werte ist die Datei leider abgestürzt.

Da muss ich vielleicht etwas anderes einfallen lassen...

Danke
Hallo,

(02.11.2021, 13:54)Mika schrieb: [ -> ]In der Tabelle kann man auch einige Werte ändern, die Auswirkungen auf die Zelle E55 haben.

diese Zellen könnte man nun wieder mit dem Change-Ereignis überwachen und auf das Calculate-Ereignis verzichten. Smile

Gruß Uwe
Meine Idee war nunmehr, das Makro als Modul zu speichern und einem Button zuzuordnen.

So weit so gut:

Sub ausblenden()

If Range("E55") < 0 Then
Rows("58:63").EntireRow.Hidden = True
End If

End Sub


Die Zeilen werden ausgeblendet, sofern das Ergebnis in E55 negativ ist.


Wie muss ich den Code anpassen,  wenn das Ergebnis bei E55 wieder positiv ist? Dann sollen die Zeilen natürlich wieder ausgeblendet werden...
(03.11.2021, 08:30)Mika schrieb: [ -> ]Wie muss ich den Code anpassen,  wenn das Ergebnis bei E55 wieder positiv ist? Dann sollen die Zeilen natürlich wieder ausgeblendet werden...

So wie ich es in #2 geschrieben hatte. Wink

Gruß Uwe
Okay

Danke
... doch so einfach  Confused