Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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
Inhaltsverzeichnis

Zelle überwachen mit Formel

Zelle überwachen mit Formel
10.11.2023 11:30:50
Sandra
Hallo,
heute noch ein Frage.
Ich möchte auf der Input Seite die Zelle BB1 überwachen. Hier ist eine Formel hinterlegt, die 1,2,3 oder 4 ausgibt.

immer wenn sich diese Zahl ändert, soll ein Makro ausgeführt werden, dass Grafiken ein- und ausblendet: Sub Up_Downstream()

Ich weiß, dasss mich mit worksheet_caculate arbeiten muss, nur leider funktioniert mein Code nicht.

hab es so:

Option Explicit

Public updown As Long
Sub Worksheet_Calculate()


If Range("$BB$1") = updown Then

Exit Sub
Else
Up_Downstream
End If
updown = Range("$BB$1")
End Sub


und so probiert:


Private Sub Worksheet_Calculate(ByVal Target As Range)

If Target.Address = "$BB$1" Then


Up_Downstream
End If

End Sub


Beides funktioniert nicht und blockiert zudem dann noch das Sub Up_Downstream wenn ich es händisch ausführen möchte.

danke schonmal...

VG
Sandra

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle überwachen mit Formel
10.11.2023 12:00:30
MCO
Moin!

Auslöser muss das Calculate-Ereignis sein, das sehe ich bei dir nicht. Es gehört ins Modul des Tabellenblattes.
Private Sub Worksheet_Calculate()

test
End Sub


Im Modul mach ich dann die einfache Prüfung von vorher/nachher
Sub test()

'referenzwert in E1
If Range("E7").Value > Range("E1") Then
MsgBox "Änderung!"
'Up_Downstream 'dein Makro hier
Range("E1").Value = Range("E7").Value 'neuen Referenzwert setzen
End If
End Sub


Das ganze hier nochmal als Datei
https://www.herber.de/bbs/user/164176.xlsm

Gruß, MCO

Anzeige
AW: Zelle überwachen mit Formel
10.11.2023 14:32:19
daniel
Hi
bei Formeln ist das Calculate-Event das richtige.
Das Problem ist, dass du nicht ermitteln kannst, welche Zellen neu berechnet werden und ob diese Neuberechnung dann auch ein neues Ergebnis gebracht hat. Daher hat das Calculate-Event auch keinen Parameter TARGET. Wenn du diesen hinzuerfindest, kann das Makro nicht funktionieren.
Damit die Events automatisch funktionieren, musst du die Kopfzeile so übernehmen, wie sie bei der automatischen Erstellung angelegt wird.



Wenn du also verhindern willst, dass dein Makro unnötig oft ausgeführt wird, musst du dir merken, welcher Wert vorher in der Zelle stand und welcher Wert jetzt drin steht und das Das Makro nur dann einmalig ausführen, wenn der Wert sich unterscheidet.
Dazu kannst du, wie MCO zeigt, eine andere Zelle verwenden, in die du den alten Wert als Festwert reinschreibst, oder du kannst eine Variable vom Typ STATIC verwenden, dann benötigst du keine Zelle.
Variablen vom Typ Static behalten ihren Wert nach Makroende und haben diesen auch dann noch, wenn das Makro erneut gestartet wird:

Private Sub Worksheet_Calculate()

static BB1_alt as variant
If Range("BB1").value > BB1_alt then
Call Makro_Grafik_ein_aus 'oder wie immer du da Makro benannt hast
BB1_alt = Range("BB1").value
end if
End Sub


der Unterschied zwischen statischer Variable und hinterlegen in einer Zelle ist, dass die Statische Variable nach dem Öffnen der Datei zunächst immer leer ist, dh das Makro wird dann beim ersten Change-Eventaufruf einmal ausgeführt.
Hinterlegst du den Wert in einer Zelle, dann wird diese natürlich mit gespeichert und ist dann nach dem Öffnen sofort verfügbar.

Gruß Daniel
Anzeige
AW: Zelle überwachen mit Formel
13.11.2023 08:59:46
Sandra
Hallo Daniel,

vielen Dank. Jetzt funktioniert es ..
Und auch dafür, dass Du Dir die Zeit für eine ausführliche Erklärung genommen hast.

VG
Sandra
AW: Zelle überwachen mit Formel
10.11.2023 14:49:17
daniel
für diese Art der Überwachung einer Zelle mit Änderung gibt es noch eine Methode, die etwas um die Ecke denkt:

1. Lege auf dem Tabellenblatt eine Textbox aus der Gruppe der ActiveX-Steuerelemente an.
2. Verknüpfe die Textbox mit der Zelle, so dass der Zellwert in der Box angezeigt wird. Trage hierzu die Zelladresse in die Eigenschaft "LinkedCell" ein
3. Verwende jetzt das Change-Eventmakro der Textbox, um deine Grafiken ein- und auszublenden.

Gruß Daniel
Anzeige
AW: Zelle überwachen mit Formel
10.11.2023 12:11:03
Sandra
Hi MCO,

ok, dass ist mir jetzt peinlich, aber wie hast du den Referenzwert definiert in der Tabelle?

Ich danke, Dir sehr für Deine Mühe. Ich bin immer wieder begeistert wie locker ihr das alle aus dem Ärmel schüttelt.

VG Sandra
AW: Zelle überwachen mit Formel
10.11.2023 12:34:37
MCO
Hi!
Der Referenzwert ist natürlich das Ergebnis der letzten Berechnung. Nicht jedes Calculate-Ereignis wird ja zwingend das Ergebnis dieser Zelle beeinflussen. Also muss das vorher/nachher verglichen werden.

Gruß, MCO

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige