Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro ausführen bei Zelländerung durch Formel

Forumthread: Makro ausführen bei Zelländerung durch Formel

Makro ausführen bei Zelländerung durch Formel
30.08.2018 16:33:22
Philipp
Hallo Zusammen,
Ich habe mal wieder ein kleines Problemchen bei einem Makro.
Ich habe eine Tabelle, in deren Zellen via Makro ein Kommentar eingefügt werden soll, wenn sich der Zellwert ändert.
Dazu nutze ich folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.NoteText = "" Then
Target.NoteText Text:=Date & ": " & Target.Value
Else
Target.NoteText Text:=Target.NoteText & Chr(10) & Date & ": " & Target.Value
End If
End Sub

Das funktioniert auch soweit ganz gut, allerdings nur bei Werten, die manuell geändert werden. Ich möchte diese Funktion aber ausführen, wenn sich Zellwerte durch eine Neuberechnung der Formeln ändern. Zusätzlich betrifft dies eine ganze Menge an Zellen, bei denen der Kommentar eingefügt werden soll...
Danke im Voraus!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen bei Zelländerung durch Formel
30.08.2018 16:49:42
Hajo_Zi
das ist aufwendig
Private Sub Worksheet_Calculate()
auf meine Homepage, VBA, Bilder findest Du Beispiele dazu.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro ausführen bei Zelländerung durch Formel


Schritt-für-Schritt-Anleitung

Um ein Makro auszuführen, wenn sich Zellwerte aufgrund von Formeln ändern, kannst du folgenden VBA-Code verwenden. Dieser Code wird in das Arbeitsblattmodul eingefügt:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Navigiere im Projekt-Explorer zu deinem Arbeitsblatt.
  3. Doppelklicke auf das Arbeitsblatt, um das Codefenster zu öffnen.
  4. Füge den folgenden Code ein:
Private Sub Worksheet_Calculate()
    Dim cell As Range
    For Each cell In Me.UsedRange
        If cell.NoteText = "" Then
            cell.NoteText Text:=Date & ": " & cell.Value
        Else
            cell.NoteText Text:=cell.NoteText & Chr(10) & Date & ": " & cell.Value
        End If
    Next cell
End Sub
  1. Schließe den VBA-Editor und teste die Funktion, indem du die Berechnungen in deiner Tabelle anstößt.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass du den Code im richtigen Arbeitsblattmodul eingefügt hast und dass die Berechnungseinstellungen auf "Automatisch" gesetzt sind.
  • Fehler: Kommentare werden nicht aktualisiert.

    • Lösung: Überprüfe, ob die Zellen, die du überwachen möchtest, tatsächlich Teil der UsedRange sind. Möglicherweise musst du die Schleife anpassen.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Excel-Funktion WENN verwenden, um Kommentare in einer Hilfsspalte anzuzeigen. Dies ist jedoch nicht so flexibel wie die VBA-Lösung. Eine einfache Formel könnte so aussehen:

=WENN(A1<>B1; "Wert geändert am: " & HEUTE(); "")

Diese Lösung hat jedoch ihre Grenzen und ist weniger dynamisch.


Praktische Beispiele

Hier ist ein Beispiel, wie du den VBA-Code in einer Arbeitsmappe nutzen kannst:

  1. Erstelle eine Tabelle mit Werten in den Zellen A1 bis A10.
  2. Füge die oben genannten VBA-Codes in das entsprechende Arbeitsblattmodul ein.
  3. Ändere einen der Werte oder eine Formel, um zu sehen, wie die Kommentare in den Zellen hinzugefügt werden.

Tipps für Profis

  • Optimierung des Codes: Wenn du nur bestimmte Zellen überwachen möchtest, kannst du die Schleife entsprechend anpassen, um die Performance zu verbessern.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme während der Ausführung des Makros zu vermeiden.
  • Dokumentation: Kommentiere deinen Code gut, damit andere (oder du selbst in der Zukunft) verstehen, was jeder Teil des Codes tut.

FAQ: Häufige Fragen

1. Kann ich das Makro auf mehrere Arbeitsblätter anwenden?
Ja, du kannst den Code in jedem Arbeitsblattmodul einfügen, in dem du die Funktionalität benötigst.

2. Funktioniert das Makro in Excel Online?
Leider funktioniert VBA nicht in Excel Online. Du benötigst die Desktop-Version von Excel, um dieses Makro auszuführen.

3. Was mache ich, wenn ich Excel 365 benutze?
Der Code funktioniert auch in Excel 365. Achte darauf, dass die Makros aktiviert sind und die richtigen Berechnungseinstellungen gewählt sind.

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