Wie erreiche ich, dass eine VBA-MsgBox nur einmal aufpoppt?

3 Antworten

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D15")) Is Nothing Then
x = Range("D15").Value
If x = "LK" Then MsgBox "Dieses Produkt benötigt eine Lebensmittelkühlung!", vbInformation, "Hinweis"
End If
End Sub

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

Suboptimierer  12.10.2015, 11:48

Falls das Ereignis sich nur auf D15 bezieht, reicht:

If Target = Range("D15") Then...

Statt x = Range("D15").Value kann einfacher in Folge dessen Target.Value verwendet werden.

0

Der Befehlt funktioniert aber nur einmalig dann poppt die Msg Box auch bei erneuter Eingabe nicht mehr auf. Ich hätte die Msg Box jedes mal wenn dieser bestimmte Wert drin ist!?

Das Ereignis wird bei jeder Änderung in jeder Zelle des Tabellenblatts ausgelöst.

Entweder (je nach Ziel) solltest du x = Target.Value setzen oder den Bereich festlegen, auf den das Ereignis sich beziehen soll: 

If Intersect(Target, Range("D1:D15")) is not Nothing then...

Suboptimierer  12.10.2015, 11:51

PS: Für deinen Fall würde eine einfache Gültigkeitsprüfung genügen:

Daten → Datenüberprüfung → Datenüberprüfung...

2
Oubyi, UserMod Light  12.10.2015, 12:04
@Suboptimierer

Super Idee!
Dort dann Benutzerdefiniert die Formel:
=D15<>"LK"
und bei Fehlermeldung/ Typ --> "Information" aus wählen und den Warn-Text eingeben.

0
oomee 
Beitragsersteller
 12.10.2015, 12:35
@Suboptimierer

Kannst du mir den kompletten Befehl aufschreiben ... bin bei der schreiberei ein wenig durcheinander gekommen! danke für die schnelle Hilfe

0
Suboptimierer  12.10.2015, 12:42
@oomee

Zusammenfassung:

Entweder 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("D1:D15")) Is Nothing then
  If Target.Value = "LK" Then MsgBox "Dieses Produkt benötigt eine Lebensmittelkühlung!", vbInformation, "Hinweis" End If
End Sub

oder 

Daten → Datenüberprüfung → Datenüberprüfung... → Benutzerdefiniert

=$D$15<>"LK"

3
Oubyi, UserMod Light  13.10.2015, 11:05
@Suboptimierer

Es wird doch angegeben, welche Einträge erlaubt sind und das sind alle, die NICHT "LK" lauten. SONST (also bei "LK")  wird die Warnmeldung ausgegeben.

0
Suboptimierer  13.10.2015, 11:08
@Oubyi, UserMod Light

Ja, so wird es sein. Ich dachte nunmal, dass eine Meldung kommen soll, wenn die Bedingung erfüllt ist, nicht dann, wenn sie nicht erfüllt ist.

0