Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Makro ausführen, wenn sich Zellinhalt ändert

Forumthread: Makro ausführen, wenn sich Zellinhalt ändert

Makro ausführen, wenn sich Zellinhalt ändert
22.01.2026 11:22:23
Frank
Hallo zusammen,
ich benötige Hilfe.

Auf meinem Tabellenblatt werden in den Zellen S8 und T8 der Maximalwert und der Minimalwert per Formel errechnet und gerundet.
Sobald sich dieser Wert ändert soll das Makro "Skalierung" ausgeführt werden.

Das Makro ist im Modul1 und sieht wie folgt aus:

Sub Skalierung()
ActiveSheet.ChartObjects("Dia_IBCS_03").Activate
With ActiveChart.Axes(xlValue)
.MaximumScale = ActiveSheet.Range("S8")
.MinimumScale = ActiveSheet.Range("T8")
End With
End Sub

Das Makro soll ausgeführt werden, wenn sich die Werte in den Zellen S8 und/oder T8 ändern.
Wie kann ich das am besten machen?

Vielen Dank für eure Hilfe
Frank
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen, wenn sich Zellinhalt ändert
22.01.2026 11:31:11
MCO
Moin!

Geht mal ins Modul des Arbeitsblattes.
Da wählst du "Worksheet" und rechts "Calculate"

Dann ergänzt du es, damit es wie folgt aussieht:

Private Sub Worksheet_Calculate()

MsgBox "Jetzt läuft dein makro"
End Sub


Ausprobieren
Wenn das für dich OK ist, dann schreib statt der MSGBOX deinen Makronamen rein. Das Makro muss dann in einem allgemeinen Modul stehen.

Gruß, MCO
Anzeige
AW: Makro ausführen, wenn sich Zellinhalt ändert
22.01.2026 12:36:01
daniel
Hi
du kannst in Excel nicht so einfach ermitteln, ob sich ein Wert, der durch eine Formel berechnet wird, geändert hat.
du kannst lediglich ermitteln, ob auf dem Tabellenblatt Formen neu berechnet wurden, aber nicht, welche Formeln und ob sich die Werte dabei geändert haben.
dh. wenn du wie von MCO vorgschlagen, das Calculate-Event verwendest, wird dein Makro öfters ausgeführt, als eigentlich benötigt.
Wenn das kein Problem ist, dann mach es so wie von MCO vorgeschlagen:

Private Sub Worksheet_Calculate()

Call Skalierung
End Sub


wenn die häufige Ausführung des Makros stört (Bildschirmflackern, verzögerung beim Bearbeiten) dann erweitere das Makro so, dann wird das Makro Skalierung nur bei einer tatsächlichen Änderung durchgeführt

Private Sub Worksheet_Calculate()

static altMin as double
static altMax as double

if range("S8").value > altMax or Range("T8").value > altMin then
Call Skalierung
altMax = Range("S8").value
altMin = Range("T8").value
end if

End Sub

Statische Variablen sind Variablen, die bei Ende des Makros nicht zurückgesetzt werden, sondern diese Variablen behalten ihren Wert so dass dieser beim erneuten Aufruf sofort wieder verwendet werden kann.

Gruß Daniel
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18