Errorfenster in Excel machen

John_Q

Enthusiast
Thread Starter
Mitglied seit
12.10.2003
Beiträge
5.059
Ort
Frankenwald
Wie kann ich in Excel ne Error Message einfügen (mit Fenster), wenn z.b der Wert einer bestimmten Zelle 5 überschreitet.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
mit VB. Drück in Excel alt+F11 und du kommst in die VBA-Oberfläche. Da klickst du rechts auf das entsprechende Tabellenblatt, wo du arbeiten willst. und sagst CODE anzeigen
Hier fügst du diesen Code ein:

Private Sub Worksheet_Change(ByVal A2 As Range)
Range("A2").Select
If ActiveCell.Value = "Fehler" Then
Mldg = "Fehler in Zelle A2" ' Meldung definieren.
Stil = vbCritical + vbDefaultButton2 ' Schaltflächen
' definieren.
Titel = "Error" ' Titel definieren.
Hilfe = "DEMO.HLP" ' Hilfedatei
' definieren.
Ktxt = 1000 ' Kontext für Thema
' definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)
End If
End Sub

Die Sachen hinter dem ' sind KOmmentare, sie erscheinen in VB dann grün. Wenns nicht klappt, einfach mal fragen.
 
Sehr gut, funktioniert, danke. Aber nun will ich noch, das in diese entsprechende Zelle ein neuer Wert eingeben werden muss. Denn nach der Fehlermeldung bleibt die falsche Zahl drin stehen.
 
Sehr gut, und leider muss ich noch was fragen. Gibts ne Möglichkeit das, wenn die Fehlermeldung kommt, er den alten Wert der vorher dringestanden war wieder nimmt?
 
Also, ich schreibe in einer Zelle den Wert 3 (der passt). Danach den Wert 4 (der is falsch), hier kommt jetzt die Error Message und genau jetzt soll er wieder den alten Wert, der drin war reinschreiben, in diesem Fall die 3.
 
So, hat leider etwas gedauert, ich war noch beim Essen. Aber frag ruhig weiter, dann langweile ich mich auf arbeit nicht so ;)

UNd hier der neue Code, einfach den alten komplett ersetzen:

Dim ZS
Private Sub Worksheet_Change(ByVal A2 As Range)
Range("A2").Select

If ActiveCell.Value <> "Fehler" Then
ZS = ActiveCell.Value
End If
If ActiveCell.Value = "Fehler" Then
Mldg = "Fehler in Zelle A2" ' Meldung definieren.
Stil = vbCritical + vbDefaultButton2 ' Schaltflächen definieren.
Titel = "Error" ' Titel definieren.
Hilfe = "DEMO.HLP" ' Hilfedatei definieren.
Ktxt = 1000 ' Kontext für Thema definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)
ActiveCell.Value = ZS
End If
End Sub
 
hat alles fast geklappt. Nur jetzt führt er den Code nimmer aus, obwohl ich nix verändert habe. Da ich ausversehn den Wert auf 8 setzte, er dann immer auf 8 springte und immer ne fehlermeldung brachte. Musste Excel über Prozesse beenden und nun geht der Code nimmer.
 
komisch, das passiert bei mir nicht. Kannst du mir hier einfach mal deinen Code posten und auch was du so eingegeben hast?
 
Dim ZS
Private Sub Worksheet_Change(ByVal B3 As Range)
Range("B3").Select

If ActiveCell.Value < 8 Then
ZS = ActiveCell.Value
End If
If ActiveCell.Value > 8 Then
Mldg = "Kein Artikel" ' Meldung definieren.
Stil = vbInformation + vbDefaultButton2 ' Schaltflächen definieren.
Titel = "Info" ' Titel definieren.
Hilfe = "DEMO.HLP" ' Hilfedatei definieren.
Ktxt = 1000 ' Kontext für Thema definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)
ActiveCell.Value = ZS
End If
End Sub

der alte code, der ja schon funktoniert hat, geht auch nimmer
 
das ist echt komisch, bei mir läuft es. Schreib aber bei einem der If-Bedingungen <= bzw. >=, damit der Fall das man eine 8 einträgt auch behandelt wird.
Ansonsten lösch einfach mal allen VB Code (ausser du hast selber noch irgendwas anderes geschrieben) und speicher die Datei dann und schliesse Excel. Dann öffne die Datei neu und füg einfach den Code den du gepostet hast nochmal ein. Dann speicher in VB und schliesse VB. und dann probiers nochmal.
Oder hast du die Werte in die falsche Zelle eingeben? ISt mir am Anfang passiert

Achja, und wenn du mehrere Zellen überwachen willst, kannst du in der zweiten Zeile bei (ByVal B3:B10 as Range) eintragen, dann wird bei einer Änderung in diesem Bereich das PRogramm aufgerufen.
 
lol, die makros hat er deaktiviert. Ohne die gings net, jetzt passt alles. Vielen dankfür die Hilfe.
 
Ich will noch eine Zelle machen, die hat aber einen andren Wert, wenn ich noch so einen Code drunter mache, mit ner andren Zelle kommt das: Fehler beim Komplieren, Mehrdeutiger Name Worksheet_Change
 
Dim ZS
Private Sub Worksheet_Change(ByVal B3:C5 As Range)
'Hier ist der Code für Zelle B3
Range("B3").Select
If ActiveCell.Value <= 8 Then
ZS = ActiveCell.Value
End If
If ActiveCell.Value > 8 Then
Mldg = "Kein Artikel" ' Meldung definieren.
Stil = vbInformation + vbDefaultButton2 ' Schaltflächen definieren.
Titel = "Info" ' Titel definieren.
Hilfe = "DEMO.HLP" ' Hilfedatei definieren.
Ktxt = 1000 ' Kontext für Thema definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)
ActiveCell.Value = ZS
End If
'Und hier der Code für Zelle B5
Range("B5").Select
If ActiveCell.Value <= 5 Then
ZS = ActiveCell.Value
End If
If ActiveCell.Value > 5 Then
Mldg = "Kein Artikel" ' Meldung definieren.
Stil = vbInformation + vbDefaultButton2 ' Schaltflächen definieren.
Titel = "Info" ' Titel definieren.
Hilfe = "DEMO.HLP" ' Hilfedatei definieren.
Ktxt = 1000 ' Kontext für Thema definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)
ActiveCell.Value = ZS
End If

End Sub

Bitte sehr. Mit weiteren Fragen musst du leider bis in 8 Tagen warten, ich fahr jetzt in die Schweiz! :d Aber die HIlfe ist normal auch sehr umfangreich und gut ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh