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

Forumthread: Wenn berechneter Zellwert sich ändert dann Makro

Wenn berechneter Zellwert sich ändert dann Makro
16.11.2014 07:20:33
Stefan
Hallo liebe Leute,
ich hänge seit Tagen fest, komme nicht weiter, langsam frage ich mich ob das überhaupt funktioniert? Aufgabe: Wenn sich ein Zellwert (A3) ändert, soll ein Makro aufgerufen werden. Das Besondere, der Zellwert A3 wird berechnet (=A1+A2). Ich habe mit "Worksheet_Calculate" rumexperimentiert, komme aber nicht zu dem gewünschtem Ergebnis. Könnt Ihr mir helfen? Vielen Dank im vorraus.
MfG Stefan

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn berechneter Zellwert sich ändert
16.11.2014 08:15:05
Crazy
Hallo Stefan
bei mir geht es so
Private Sub Worksheet_Calculate()
MsgBox "Hallo Stefan"
End Sub

MfG Tom

AW: Wenn berechneter Zellwert sich ändert
16.11.2014 08:17:12
Oberschlumpf
Hi Tom
dein Code wird aber bei jeder Berechnung ausgeführt - Code soll aber nur bei Änderung durch Formel in A3 ausgeführt werden.
Ciao
Thorsten

Anzeige
AW: Wenn berechneter Zellwert sich ändert
16.11.2014 08:23:18
Crazy
Hallo Thorsten
bin mir schon bewusst, dass es bei jeder Berechnung ausgelöst wird
aber ich habe herausgelesen, dass es sich nur um eine Zelle handeln soll
und erwartungsgemäß kommen gleich noch ein paar andere Bedingungen hinzu
MfG Tom

AW: Wenn berechneter Zellwert sich ändert
16.11.2014 09:01:42
Stefan
Hi Leute, Ihr seid fantastisch!
Mit einer so schnellen Lösung habe ich nicht gerechnet,
vielen-vielen Dank Euch Allen.
Meine Lösung (von Euch):
-----------------------------------------------
Option Explicit
Public vorhWert As Long
Sub Worksheet_Calculate()
If Range("$A$3") = vorhWert Then
Exit Sub
Else
MsgBox "Makro gestartet!"
End If
vorhWert = Range("$A$3")
End Sub

-----------------------------------------------
Nun funktioniert's ? Wenn sich der berechnete Wert (=A1+A2) in Zelle A3 ändert,
dann wird ein Makro gestartet. Prima!
Vielen Dank
MfG Stefan

Anzeige
AW: Wenn berechneter Zellwert sich ändert
16.11.2014 19:19:01
Stefan
Hi Tom,..
ich habe mich leider zu früh gefreut :-(
Du hattest recht, wenn in einer beliebigen Zelle ein Wert geändert wird, wird das Makro ausgeführt.
Das Makro sollte aber nur ausgeführt werden wenn nur A3 verändert wird.
Hast Du dafür eine Idee wie man das machen könnte.
LG Stefan

Anzeige
AW: Wenn berechneter Zellwert sich ändert
16.11.2014 19:30:51
Crazy
Hallo
so wird in meinem Test das Makro nur ausgeführt wenn sich A3 ändert
Public alterWert As Double
Sub Worksheet_Calculate()
If Range("A3") = alterWert Then
Exit Sub
Else
alterWert = Range("A3")
MsgBox "Hallo Stefan"
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
alterWert = Range("A3").Value
End Sub

MfG Tom

Anzeige
AW: Wenn berechneter Zellwert sich ändert
16.11.2014 19:57:16
Stefan
Hi Tom,..
supergenial, genau so soll es funktionieren.
Nur wenn in A3 der berechnete Wert sich ändert, soll das Makro ausgeführt werden.
Ganz recht herzlichen Dank für diese superschnelle Lösung.
LG Stefan
;

Forumthreads zu verwandten Themen

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

Makroausführung bei geändertem Zellwert in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel auszuführen, wenn sich der Wert einer berechneten Zelle ändert, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Wähle das entsprechende Arbeitsblatt: Klicke im Projektfenster auf das Arbeitsblatt, in dem du das Makro implementieren möchtest.

  3. Füge den folgenden Code ein:

    Public alterWert As Double
    
    Sub Worksheet_Calculate()
        If Range("A3") = alterWert Then
            Exit Sub
        Else
            alterWert = Range("A3")
            MsgBox "Makro gestartet!"
        End If
    End Sub
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        alterWert = Range("A3").Value
    End Sub
  4. Schließe den VBA-Editor und teste deine Excel-Datei, indem du die Werte in Zelle A1 oder A2 änderst, um zu sehen, ob sich der berechnete Wert in A3 ändert.


Häufige Fehler und Lösungen

  • Das Makro wird bei jeder Berechnung ausgeführt: Stelle sicher, dass du die Bedingung für die Zelle A3 korrekt eingestellt hast und nur dann das Makro ausführen lässt, wenn sich dieser Wert ändert.

  • Makro funktioniert nicht: Überprüfe, ob die Makros in deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros.


Alternative Methoden

Falls der oben genannte Ansatz nicht funktioniert, kannst du alternativ Folgendes versuchen:

  1. Verwende ein Ereignis: Anstatt die Worksheet_Calculate-Methode zu verwenden, kannst du die Worksheet_Change-Methode nutzen, um zu überprüfen, ob Zelle A3 geändert wurde.

  2. Nutze eine benutzerdefinierte Funktion: Erstelle eine benutzerdefinierte VBA-Funktion, die den Wert in A3 überwacht und entsprechend reagiert.


Praktische Beispiele

Hier ist ein einfaches Beispiel für die Verwendung des Makros in einer Excel-Tabelle:

  • Zelle A1: 10
  • Zelle A2: 20
  • Zelle A3: =A1+A2 (berechneter Wert)

Wenn du nun den Wert in A1 oder A2 änderst, wird das Makro aktiviert und zeigt eine Meldung an, wenn sich der Wert in A3 verändert hat.


Tipps für Profis

  • Nutze Debugging: Wenn dein Makro nicht wie erwartet funktioniert, kannst du Debugging verwenden, um den Code Schritt für Schritt zu durchlaufen. Setze Haltepunkte, um den Wert von Variablen zu überprüfen.

  • Optimierung: Überlege, ob du den Code optimieren kannst, um die Leistung zu verbessern, insbesondere wenn du mit großen Datenmengen arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich das Makro nur für bestimmte Bedingungen ausführen lassen?
Du kannst zusätzliche Bedingungen in den If-Anweisungen hinzufügen, um die Ausführung des Makros nur bei bestimmten Veränderungen zu erlauben.

2. Funktioniert das Makro in allen Excel-Versionen?
Das vorgestellte Makro sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren, jedoch können einige spezifische Funktionen in älteren Versionen variieren.

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