Überwachung von berechneten Werten per VBA

Im Expertenchat gab es die Frage:

Kann bei berechneten Werten auch eine Meldung angezeigt werden, wenn die Werte außerhalb eines Werte-Bereichs liegen?

Nachfolgendes Makro reagiert auf Änderungen im der gesamten Tabelle, überwacht wird der Bereich Spalte 4 (D) von Zeile 2 bis 100

Private Sub Worksheet\_Change(ByVal Target As Excel.Range)
Dim zelle As Range
 For Each zelle In UsedRange.Cells
 If zelle.Column = 4 And zelle.Row \>= 2 And zelle.Row 150 Then
 MsgBox ("Werte außerhalb bereich 0 bis 150")
 End If
 End If
 Next zelle
End Sub

Gruß
Franz

Im Expertenchat gab es die Frage:

Kann bei berechneten Werten auch eine Meldung angezeigt
werden, wenn die Werte außerhalb eines Werte-Bereichs liegen?

Dazu braucht es keinen Makro, dafür gibt es die Funktion
Daten | Gültigkeit

Gruß HW
ppt-user.de

Hallo HW

Die Gültigkeit von Daten bei der Eingabe kann so überprüft werden. Dem Chatter ging es darum, dass berechnete Werte überwacht werden, die sich während der Eingabe in anderen Zellen ändern.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Die Gültigkeit von Daten bei der Eingabe kann so überprüft
werden. Dem Chatter ging es darum, dass berechnete Werte
überwacht werden, die sich während der Eingabe in anderen
Zellen ändern.

Hi Franz,
das Makro muss dann nicht die berechneten Zellen sondern die Zellen in denen die Eingaben erfolgen überwachen.
Wenn dort dann Eingaben erfolgen wird im Workshet_Change der BrerechnungsBereich nach den Größen der Werte überprüft und ggfs ne Meldung ausgegeben.
Gruß
Reinhard

Hallo Reinhard,

den Targetbereich der Eingaben kann man natürlich zusätzlich in eine If-Schleife einbauen, um die Code-Laufzeiten zu reduzieren. Macht aber nur Sinn, wenn die Eingabezellen nicht zu sehr in der Tabelle verstreut sind.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

den Targetbereich der Eingaben kann man natürlich zusätzlich
in eine If-Schleife einbauen, um die Code-Laufzeiten zu
reduzieren. Macht aber nur Sinn, wenn die Eingabezellen nicht
zu sehr in der Tabelle verstreut sind.

Hallo Franz,
bei bis zu 30 *glaub* Einzelbereichen kann man die mit union usammenfassen und mit intersect abprüfen.
Was ich an sich sagen wollte, wenn B1 mit der Formel =A1 ausgetattet ist, bringt dir Worksheet_change zur Überwachung von B1 rein gar nix.
Änderungen durch eine Formel lösen nicht das Change-Ereignis aus.
Deshalb A1 überwachen berwachen und bei Änderungen in A1 den Wert in B1 überprüfen ob er zu groß oder ähnlich ist.
Gruß
Reinhard