VBA-Code zum Anzeigen des Popup-Fensters "Message Box", wenn die Formel in der Zielzelle einen bestimmten Wert überschreitet

8

Ich versuche, ein einfaches Makro zu schreiben, um ein Popup (vbOKOnly) anzuzeigen, wenn der Wert in einer Zelle einen bestimmten Wert überschreitet.

Ich habe grundsätzlich ein Arbeitsblatt mit Produkten und Rabatten. Ich habe eine Formel in einer Zelle, sagen A1, die den Rabatt als Prozentsatz (50% oder .5) effektiven Rabatt aller Einträge zeigt.

Nach was ich suche, ist Code, um ein Nachrichtenfeld anzuzeigen, wenn der Wert von Zelle A1 50% übersteigt, weil der Eingang einer anderen Zelle den Rabatt über 50% schob.

Danke!

    
Hatt 04.04.2012, 14:32
quelle

3 Antworten

14

Sie könnten Ihrem Blatt den folgenden VBA-Code hinzufügen:

%Vor%

Jedes Mal, wenn eine Zelle auf dem Blatt geändert wird, wird der Wert von Zelle A1 überprüft.

Anmerkungen:

  • Wenn A1 auch von Daten abhängt, die sich in anderen Tabellen befinden, wird das Makro nicht aufgerufen, wenn Sie diese Daten ändern.
  • Das aufgerufene Makro wird jedes Mal aufgerufen, wenn sich etwas auf Ihrem Blatt ändert. Wenn es viel Formel (wie in 1000s) hat, könnte es langsam sein.

Widor verwendet einen anderen Ansatz ( Worksheet_Calculate anstelle von Worksheet_Change ):

  • Pro: Seine Methode funktioniert, wenn der Wert von A1 mit Zellen in anderen Blättern verknüpft ist.
  • Nachteile: Wenn Sie auf Ihrem Blatt viele Links haben, die auf andere Blätter verweisen, wird seine Methode etwas langsamer ausgeführt.

Fazit : Verwenden Sie Worksheet_Change , wenn A1 nur von Daten abhängt, die sich auf demselben Blatt befinden, verwenden Sie Worksheet_Calculate , falls nicht.

    
assylias 04.04.2012, 14:42
quelle
2

Im Wesentlichen möchten Sie Code zum Ereignis Calculate des entsprechenden Arbeitsblatts hinzufügen.

Doppelklicken Sie im Projektfenster des VBA-Editors auf das Blatt, zu dem Sie Code hinzufügen möchten, und wählen Sie links oben im Dropdown-Menü im oberen Bereich des Editorfensters "Arbeitsblatt" und "Berechnen" aus jeweils.

Alternativ kopieren Sie den folgenden Code in den Editor des Blattes, das Sie verwenden möchten:

%Vor%

Auf diese Weise wird jedes Mal, wenn das Arbeitsblatt neu berechnet wird, geprüft, ob der Wert & gt; 0,5 oder 50%.

    
Widor 04.04.2012 14:45
quelle
1

Ich glaube nicht, dass eine Message-Box der beste Weg ist, um diesen Code zu lesen, da Sie den VB-Code in einer Schleife zum Überprüfen des Zelleninhalts benötigen oder das Makro manuell ausführen möchten. In diesem Fall wäre es besser, der Zelle eine bedingte Formatierung hinzuzufügen, um den Hintergrund beispielsweise in Rot zu ändern, wenn der Wert die Obergrenze überschreitet.

    
Matt Donnan 04.04.2012 14:40
quelle

Tags und Links