in meiner Datei soll eine MsgBox angezeigt werden, sobald der Range("K82") - Range("M82") größer EUR 1.000 ist.
(Anmerkung: Range("K82") bzw. ("M82") sind Summenfelder (z.B.:(K82 = K4:K80))
Gibt der User z.B. im Range ("K10") 500 ein, anschließend im Range ("K15") 700 ein, so soll die MsgBox erscheinen.
Mit dem etwas angepaßten Code von IngoG gelingt mir das:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Range("K82") - Range("M82") < 1000 Then
V = 0
Else
If (V = 0) And Range("K82") - Range("M82") > 1000 Then
MsgBox "Das Estimate 2004 weicht nunmehr um mehr" & vbCr & _
"als 1.000 von Ihrem Budget 2004 ab!" & vbCr & _
"Bitte anpassen oder Finance ansprechen!", 16, "Warnung"
V = 1
Else
End If
End If
End Sub
'Variable V ist global definiert
Das funktiniert, hat aber leider einen Haken:
Gibt der User einen Betrag in Range("K10") ein, durch den eine Budget-überschreitung von > 1.000 erzeugt wird, erscheint zwar richtigerweise die MsgBox, wenn er aber diesen Betrag dann überschreibt, z. B. wiederum mit einem Betrag, der zu einer Budgetüberschreitung führt, wird leider die MsgBox nicht nocheinmal angezeigt.
Im Prinzip möchte ich folgendes erreichen:
Die MsgBox soll immer dann erscheinen, wenn ich mit einer Eingabe die 1.000-Grenze überschreite. Wenn sie aber einmal überschritten worden ist, soll sie bei weiteren Eingaben nicht mehr angezeigt werden, es sei denn, der User korrigiert einen bereits eingegebenen Betrag mit einem Betrag, der wiederum zu einer Überschreitung führt. Ist das noch irgendwie verständlich? :-)
Könnt Ihr mir hier weiterhelfen?
Vielen Dank im voraus.
Gruß
Torsten