Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

MsgBox soll nur einmal erscheinen

MsgBox soll nur einmal erscheinen
29.07.2004 09:40:20
Torsten
Guten Morgen beisammen,
mit folgendem kleinen Makro kann ich eine MsgBox aufscheinen lassen, wenn der User meiner Datei mehr Ausgaben plant als budgetiert sind. Die Zellen, die dafür geprüft werden, sind aber selbst Summen aus verschiedenen Kostenarten.
Daß heißt, wenn durch die Eingabe eines Betrages einnmal das Budget überschritten wird, wird mit jeder weiteren Eingabe die MsgBox erzeugt. Das möchte ich nicht. Ich hab's deshalb mal mit einer Variablen "V" probiert, die hochgezählt wird, sobald die MsgBox das 1. Mal gezeigt wird.

Function WARNING()
Call msgWARN
End Function

--------------------------------------------------------------------

Sub msgWARN()
Dim V As Integer
If V = 0 Then
MsgBox "Das Estimate 2004 ist höher als Ihr Budget 2004" & vbCr & _
"Stimmen Sie sich bitte mit Finance ab!", 16, "Warnung"
V = V + 1
Else
Exit Sub
End If
End Sub

Leider funktioniert's noch nicht. Könnt Ihr mir weiterhelfen?
Vielen dank im voraus.
Gruß
Torsten

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox soll nur einmal erscheinen
IngoG
Hallo Torsten,
da du die Variable V in deiner function definierst, wird sie bei jedem Aufruf neu initialisiert.
Du müsstest also eine globale variable V erzeugen deren wert während der gesamten laufzeit beibehalten wird, oder eine Zelle in einer Tabelle belegen...
Gruß Ingo
AW: MsgBox soll nur einmal erscheinen
29.07.2004 10:01:58
Torsten
Hallo Ingo,
vielen Dank für Deine Rückmeldung.
Ich habe meine Variable "V" global hinterlegt (im Modul direkt unter "Option Explicit").
Das funktioniert, hat aber einen entscheidenden Nachteil: Angenommen der User trägt einen Betrag ein, der zur Budgetüberschreitung führt mit der entsprechenden MsgBox, löscht dann aber den Betrag um nochmals einen Betrag einzugeben, der das Budget überschreitet, so kommt keine MsgBox mehr hoch!
Hast Du hierzu auch eine Lösung? Wie sähe denn die Lösung mit der Belegung einer Zelle in der Tabelle aus?
Gruß
Torsten
Anzeige
AW: MsgBox soll nur einmal erscheinen
IngoG
Hallo Torsten,
mE kannst Du dann nur folgendermassen vorgehen:
Du baust 2 ereignisorientierte prozeduren, die ugf so aussehen:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Sum(Range("a1:a100")) < grenzwert Then v = 0
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If (v = 0) And Sum(Range("a1:a100")) > grenzwert Then
MsgBox "wert zu hoch"
v=1
End If
End Sub

zusätzlich benötigst Du wieder eine globale Variable v und du mußt irgendwie deinen Grenzwert (evt auch global)festlegen
konnte leider code nicht prüfen, ist aber eh nur als anregung gedacht...
Gruß Ingo
Anzeige
AW: MsgBox soll nur einmal erscheinen
Torsten
Hallo Ingo,
zur Zeit komme ich nicht dazu, Deinen Vorschlag in meinen Code einzuarbeiten.
Wenn ich's nächste Woche schaffen sollte, melde ich mich nochmal.
Vielen Dank schon mal bis jetzt.
Gruß
Torsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige