Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Message Box wenn Zellwert höher

Message Box wenn Zellwert höher
17.11.2017 11:47:34
Hans
Hallo Forum,
ich habe in meinem Tabellenblatt in einer Zelle eine Formellösung stehen die mir anzeigt wenn der Zellwert in Zelle "T37" größer als der Wert in Zelle "BQ20" ist.
Ich hätte gern (aus Platzgründen) dort eine MessageBox angezeigt bekommen....
Leider bekomme ich das alleine nicht hin. Vergleichbare Makros beziehen sich immer auf negative Zahlen und nicht auf zwei Zellbezüge.
Vielen Dank für eure Hilfe
Hans
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Message Box wenn Zellwert höher
17.11.2017 11:58:04
JoNNy
Hallo Hans,
also wenn du in das Tabellenblatt den Code einfügst:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("T37").Value > Range("BQ20").Value Then
MsgBox "Hinweis!"
End If
End Sub
dann sollte das klappen.
Gruß JoNNy
Anzeige
AW: Message Box wenn Zellwert höher
17.11.2017 12:15:44
Hans
Moin moin JoNNy,
vielen Dank.... Meine Frage, wohin mit dem Code? Diese Arbeitsmappe?
Hans
AW: Message Box wenn Zellwert höher
17.11.2017 12:20:35
JoNNy
Oh sorry ja ehm du musst dazu den VBA editor öffnen, das geht normal mit der Tastenkombi "Alt+F11".
Falls nicht dann musst du erst das hier machen:
https://support.office.com/de-de/article/Anzeigen-der-Registerkarte-Entwicklertools-e1192344-5e56-4d45-931b-e5fd9bea2d45
wenn der editor offen ist dann siehts du links deine Tabelle mit den einzelnen Blättern.
Und das Blatt das betroffen ist öffnest du mit doppeklick und in das Fenster das sich öffnet kommt dann der Code.
Ich weiß klingt erstmal aufwendig aber wenn dus einmal gemacht hast ist es beim nächsten kein Problem mehr. Und nicht vergessen die Tabelle unter dem Format .xlsm zu speichern sonst speichert er den Code nicht mit.
Gruß JoNNy
Anzeige
AW: Message Box wenn Zellwert höher
17.11.2017 12:30:43
Hans
Hallo JoNNy,
hab soweit alles gefunden und eingefügt.... geht aber trotzdem nicht... Kann es sein, weil ich schon ein Makro darin ausführe....
Das hier steht in dem Fenster:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("at2")) Is Nothing Then
On Error GoTo ErrorHandler
Application.EnableEvents = False
Target.Value = UCase(Target)
ErrorHandler:
Application.EnableEvents = True
End If
End Sub

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("T37").Value > Range("BQ20").Value Then
MsgBox "Hinweis!"
End If
End Sub

Hans
Anzeige
AW: Message Box wenn Zellwert höher
17.11.2017 13:11:17
Werner
Hallo Hans,
kann auch nicht gehen, weil das Change-Ereignis nur auslöst, wenn ein Wert in der Zelle (händisch) geändert wird. Bei dir ist das ja aber das Ergebnis einer Formelberechnung und das löst kein Change-Ereignis aus.
Wenn, dann müsstest du das Calculate-Ereignis des Blatts benutzen.
Private Sub Worksheet_Calculate()
Allerdings solltest du dir dabei über eines im klaren sein:
Das Calculate-Ereignis löst bei jeder Formelberechnung aus, egal wo auf deinem Blatt etwas berechnet wird.
Wenn du also irgendwo auf dem Blatt eine Formel einträgst oder irgendeine Formel berechnet wird, dann löst das Change-Ereignis aus und du bekommst die MessageBox angezeigt, auch wenn in den Zellen T37 und BQ20 gar nichts verändert wurde.
Die ganze Sache müsste anders aufgezogen werden. Du gibst ja in irgendeine Zelle einen Wert ein, der dazu führt, dass sich der Formelwert in T37 und/oder in BQ20 ändert. Diese Zelle müsste dann überwacht werden.
Gruß Werner
Anzeige
AW: Message Box wenn Zellwert höher
17.11.2017 13:40:46
Hans
Moin moin,
geht das denn über eine Hilfszelle?
zum Beispiel wenn in Zelle BQ19 der Zellwert <0; Userform ?
Hans
AW: Message Box wenn Zellwert höher
17.11.2017 13:41:18
Hans
Haken vergessen... noch offen
AW: Message Box wenn Zellwert höher
17.11.2017 13:40:58
JoNNy
Naja mit
If Target.Address(False, False) = "T37" or If Target.Address(False, False) = "BQ20"
End If
oder nicht ?
Gruß JoNNy
Anzeige
gelöst aber Zusatzfrage
17.11.2017 14:52:08
Hans
Hallo Forum,
ich hab das ganze hinbekommen, ging ganz einfach, aber nicht ohne eure Hilfe und Anstöße! Vielen Dank noch mal.. hier die Lösung:
Private Sub Worksheet_Calculate()
If Range("AH37") 
Nun meine Zusatzfrage:
Wie bekomme ich eine Weitere MessageBox hin, die sich auf die Zelle BQ19 bezieht?
Ich bekomme immer einen Laufzeitfehler angezeigt.....
Hans
Anzeige
AW: gelöst aber Zusatzfrage
17.11.2017 17:22:48
Hans
und wieder den Haken vergessen....
gelöst zweifel ich an.
18.11.2017 21:18:47
Werner
Hallo Hans,
eine zweite MessageBox einfach mit einer zweiten If Abfrage.
Private Sub Worksheet_Calculate()
If Range("AH37") 
Dass damit dein Problem gelöst ist, zweifel ich aber an.
Deine beiden MessageBoxen werden immer aufgerufen, sobald irgendwo auf dem Tabellenblatt eine Formelberechnung durchgeführt wird.
Ich kann mir nicht vorstellen, dass das deine Wunschlösung ist.
Nimm den Code einfach mal so wie er ist in dein Blatt auf. Gib dann in irgendeiner freien Zelle auf dem Blatt z.B. =1+1 ein und bestätige mit Enter.
Willst du das?
Ich habe dir schon einmal geschrieben, dass die Zelle (Zellen) überwacht werden müssen in die du Werte eingibst wodurch dann die Formel in AH37 bzw. BQ19 berechnet wird.
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Message Box in Excel anzeigen, wenn Zellwert höher


Schritt-für-Schritt-Anleitung

Um eine Message Box zu erstellen, die angezeigt wird, wenn der Zellwert in „T37“ größer ist als der Wert in „BQ20“, gehe wie folgt vor:

  1. Öffne den VBA-Editor: Drücke Alt + F11.

  2. Finde dein Arbeitsblatt: Im Projektfenster auf der linken Seite siehst du deine Arbeitsmappe mit den einzelnen Blättern. Doppelklicke auf das Blatt, in dem du die Message Box implementieren möchtest.

  3. Füge den Code ein: Kopiere und füge folgenden Code in das geöffnete Fenster ein:

    Option Explicit
    Private Sub Worksheet_Calculate()
       If Range("T37").Value > Range("BQ20").Value Then
           MsgBox "Hinweis! Der Wert in T37 ist größer als in BQ20."
       End If
    End Sub
  4. Speichere die Datei: Achte darauf, die Datei im .xlsm-Format zu speichern, damit der Code erhalten bleibt.

  5. Teste die Funktion: Ändere die Werte in den Zellen „T37“ oder „BQ20“ und beobachte, ob die Message Box erscheint.


Häufige Fehler und Lösungen

  • Message Box wird nicht angezeigt: Stelle sicher, dass du den richtigen VBA-Code in das richtige Arbeitsblatt eingefügt hast und dass die Datei im .xlsm-Format gespeichert ist.

  • Ereignis wird nicht ausgelöst: Beachte, dass das Calculate-Ereignis ausgeführt wird, wenn eine Formel auf dem Blatt berechnet wird. Wenn du nur manuelle Änderungen vornimmst, kann es sein, dass die Messaging Box nicht angezeigt wird.

  • Laufzeitfehler: Wenn du mehrere If-Abfragen verwendest, stelle sicher, dass diese korrekt strukturiert sind, z.B.:

    If Range("BQ19").Value < 0 Then
       MsgBox "Der Wert in BQ19 ist negativ!"
    End If

Alternative Methoden

Wenn du eine wenn dann Box erstellen möchtest, die auf andere Bedingungen reagiert, kannst du zusätzliche If-Abfragen einfügen. Hier ist ein Beispiel, um eine zweite Message Box für „BQ19“ hinzuzufügen:

Private Sub Worksheet_Calculate()
    If Range("T37").Value > Range("BQ20").Value Then
        MsgBox "Hinweis! Der Wert in T37 ist größer als in BQ20."
    End If

    If Range("BQ19").Value < 0 Then
        MsgBox "Achtung! Der Wert in BQ19 ist negativ."
    End If
End Sub

Praktische Beispiele

  1. Einfaches Beispiel: Überprüfe, ob der Wert in „AH37“ größer als 100 ist:

    If Range("AH37").Value > 100 Then
       MsgBox "Der Wert in AH37 überschreitet 100."
    End If
  2. Benutzerdefinierte Meldung: Du kannst den Text der Message Box anpassen, um spezifische Informationen anzuzeigen:

    MsgBox "Der aktuelle Wert in T37 beträgt: " & Range("T37").Value

Tipps für Profis

  • Verwende Application.EnableEvents = False: Dies verhindert, dass andere Ereignisse während der Ausführung deines Codes ausgelöst werden, was zu unerwartetem Verhalten führen kann.

  • Hilfszellen nutzen: Du kannst zusätzliche Zellen verwenden, um Bedingungen zu testen, bevor du die Message Box anzeigst. Dies kann die Effizienz des Codes erhöhen.

  • Debugging: Nutze Debug.Print innerhalb deines Codes, um den Wert von Variablen während der Ausführung zu überwachen und Probleme zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich die Message Box anpassen?
Du kannst den Text der Message Box in der MsgBox-Funktion ändern, um spezifische Anweisungen oder Informationen anzuzeigen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in allen modernen Excel-Versionen funktionieren, die Makros unterstützen, insbesondere in Excel 2010 und später.

3. Kann ich mehrere Bedingungen in einer Message Box überprüfen?
Ja, du kannst mehrere If-Abfragen im selben Sub-Prozedur verwenden, um verschiedene Bedingungen zu überprüfen und entsprechend Meldungen anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige