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

Forumthread: Makro automatisch bei Änderung starten

Makro automatisch bei Änderung starten
02.08.2005 15:01:55
Weber
Hallo.
Ich habe ein Dokument mit einem Makro. Das Makro soll jedes mal erneut ausgeführt werden, wenn ich folgende Zellen ändere:
E2, D4, D5
Besser wäre es vielleicht sogar, wenn es bei jeder Änderung erneut durchgeführt würde, oder wenn es einen Button „neu berechnen“ gäbe.
Da ich keinerlei Ahnung von VBA habe bitte genau beschreiben.
Grüße
Fabian
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro automatisch bei Änderung starten
02.08.2005 15:17:07
Galenzo
jede Änderung in einem Tabellenblatt löst ein "Ereignis" aus - das sog. Worksheet_Change-Ereignis. Alles, was in der zughörigen ereignisprozedur steht, wird dann abgearbeitet.
Das kannst du für deinen Fall nutzen:
Mit ALT+F11 zum VBA-Editor
Links deine Mappe suchen und das entsprechende Tabellenblatt doppelklicken.
Oben "(Allgemein)" aus "Worksheet stellen - jetzt kommst du schonmal zur Selection_Change-Ereignisprozedur. Rechts daneben das "Change"-Ereignis suchen.
Es wir eine leere Prozedur angelegt.
Dorthinein kommen deine Anweisungen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E2,D4:D5")) Is Nothing Then Exit Sub
Call Makro1
End Sub

es wird also abgefragt, ob "Target" - das ist/sind die Zelle/n, die geändert wurde/n - in dem angegebenen bereich liegen. wenn nicht, wird die Prozedur verlassen. ansonsten wird das Makro 1 aufgerufen.
Viel Erfolg!
Anzeige
AW: Makro automatisch bei Änderung starten
02.08.2005 16:43:01
Weber
Vielen Dank für die gute Beschreibung.
Funktioniert perfekt.
Gruß
Fabian
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro automatisch bei Änderung starten


Schritt-für-Schritt-Anleitung

Um ein Excel Makro automatisch auszuführen, wenn eine Zelle geändert wird, kannst du das Worksheet_Change-Ereignis im VBA-Editor nutzen. Hier ist eine genaue Anleitung:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Suche im Projektfenster auf der linken Seite nach deiner Arbeitsmappe und klicke doppelt auf das Tabellenblatt, für das du das Makro ausführen möchtest.
  3. Im rechten Fenster, das sich öffnet, wähle oben links "(Allgemein)" und dann "Worksheet".
  4. Rechts daneben wähle das "Change"-Ereignis aus.
  5. Es wird eine leere Prozedur angelegt. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Intersect(Target, Range("E2,D4:D5")) Is Nothing Then Exit Sub
       Call Makro1
    End Sub

Das obige Code-Snippet sorgt dafür, dass das Makro Makro1 ausgeführt wird, wenn die Zellen E2, D4 oder D5 geändert werden. Du kannst die Zellreferenzen nach Bedarf anpassen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code korrekt eingegeben wurde und sich im entsprechenden Tabellenblatt befindet.
  • Fehler: Das Makro wird nicht bei allen Änderungen ausgeführt.

    • Lösung: Überprüfe die Zellreferenzen im Intersect-Befehl und stelle sicher, dass sie korrekt sind.

Alternative Methoden

Falls du das Makro nicht über das Worksheet_Change-Ereignis starten möchtest, kannst du auch einen Excel Neu Berechnen Button erstellen:

  1. Gehe zu "Entwicklertools" > "Einfügen" und füge einen Button (Formularsteuerelement) ein.
  2. Weisen dem Button das gewünschte Makro zu.
  3. Klicke auf den Button, um das Makro auszuführen.

Praktische Beispiele

Hier ist ein weiteres Beispiel, wie du ein Makro automatisch ausführen kannst, wenn sich der Wert in einer anderen Zelle ändert:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Call Makro2
    End If
End Sub

In diesem Beispiel wird Makro2 ausgeführt, wenn sich der Wert in Zelle A1 ändert.


Tipps für Profis

  • Nutze Application.EnableEvents = False in deinem Makro, um zu verhindern, dass das Ereignis erneut ausgelöst wird, während das Makro läuft.
  • Denke daran, Application.EnableEvents = True am Ende deines Makros wieder zu aktivieren.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro ausführen, wenn sich der Wert in mehreren Zellen ändert?
Du kannst die Zellen im Intersect-Befehl angeben, wie im Schritt-für-Schritt-Anleitung beschrieben.

2. Kann ich ein Makro automatisch ausführen, wenn eine Zelle einen bestimmten Wert erreicht?
Ja, du kannst eine Bedingung im If-Befehl hinzufügen, um das Makro nur auszuführen, wenn der Wert in der Zelle die gewünschte Bedingung erfüllt.

Verwende diese Anleitung, um dein Excel Makro automatisch auszuführen, wenn Zellen geändert werden, und profitiere von den vielen Funktionen, die VBA zu bieten hat!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige