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

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

Makro ausführen, wenn Zellinhalt sich ändert
06.02.2008 11:21:59
Timo
Hallo,
bisher habe ich Makros immer über bestimmte Buttons ausgeführt bzw. indem ich das Makro über die Menüleiste aktiviert habe.
Jetzt möchte ich gern auch das Makro ausführen, wenn sich der Inhalt der Zelle C6 und/oder C7 ändert. Z.B. Steht in C6 jetzt die Zahl 10. Wenn ich jetzt dort eine andere Zahl eintippe, soll das Makro aktiviert werden. Dasselbe gilt für Zelle C7.
Vielen Dank für eure Hilfe.
Timo

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen, wenn Zellinhalt sich ändert
06.02.2008 11:28:51
Rudi
Hallo,
siehe Ereignis Worksheet_Change
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Worksheet_Change-Makro
06.02.2008 11:30:24
Beate
Hallo Timo,
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Range("$C$6, $C$7")) Is Nothing Then Exit Sub
    'hier dein Code
    MsgBox "Makro gestartet!"
End Sub


Das Makro gehört ins Codefenster der Tabelle. Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Gruß,
Beate

Anzeige
AW: Makro ausführen, wenn Zellinhalt sich ändert
06.02.2008 11:34:00
Harald
Hallo Timo,
z.B. so:

Private Sub worksheet_change(ByVal target As Range)
If target.Row = 6 And target.Column = 3 Then
MsgBox "Zelle C6 geändert"
ElseIf target.Row = 7 And target.Column = 3 Then
MsgBox "Zelle C7 geändert"
End If
End Sub


Gruß Harald

Anzeige
AW: Makro ausführen, wenn Zellinhalt sich ändert
06.02.2008 14:14:00
Timo
Vielen Dank euch allen. Hat funktioniert!

Worksheet_Change-Makro
06.02.2008 22:40:36
Beate
Hallo Timo,
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Range("$C$6, $C$7")) Is Nothing Then Exit Sub
    'hier dein Code
    MsgBox "Makro gestartet!"
End Sub


Das Makro gehört ins Codefenster der Tabelle. Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Gruß,
Beate
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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

Makro automatisch ausführen bei Zelländerung in Excel


Schritt-für-Schritt-Anleitung

Um ein VBA-Makro auszuführen, wenn sich der Inhalt einer Zelle ändert, kannst du die Worksheet_Change-Ereignisprozedur verwenden. Folge diesen Schritten:

  1. Öffne die Excel-Datei und drücke ALT + F11 um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Suche im Projektfenster auf der linken Seite nach dem Arbeitsblatt, auf dem du das Makro ausführen möchtest (z.B. "Tabelle1").

  3. Doppelklicke auf das entsprechende Arbeitsblatt.

  4. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("$C$6, $C$7")) Is Nothing Then
           MsgBox "Makro gestartet!"
       End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Ändere den Wert in Zelle C6 oder C7, um das Makro auszulösen.

Dieses Makro wird automatisch ausgeführt, sobald der Inhalt in einer der angegebenen Zellen geändert wird.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Ereignisse aktiviert sind. Überprüfe, ob das Makro im richtigen Arbeitsblattcode eingefügt wurde.
  • Fehler: Die Fehlermeldung "Zelle ist nicht im Bereich".

    • Lösung: Überprüfe, ob die Zellen C6 und C7 korrekt angegeben sind. Achte auf die richtige Schreibweise und Verwendung der Anführungszeichen.

Alternative Methoden

Wenn du ein Makro automatisch ausführen möchtest, wenn ein bestimmter Wert in einer Zelle eingegeben wird, kannst du den Code entsprechend anpassen. Zum Beispiel:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("$C$6")) Is Nothing Then
        If Target.Value = 10 Then
            MsgBox "Der Wert in C6 ist jetzt 10!"
        End If
    End If
End Sub

Diese Methode ermöglicht es dir, spezifische Bedingungen zu definieren, unter denen das Makro aktiviert wird.


Praktische Beispiele

Hier sind einige praktische Anwendungsfälle für das Ausführen von Makros bei Zelländerungen:

  1. Benachrichtigung: Verwende ein Makro, um eine Benachrichtigung zu senden, wenn sich der Wert in einer Zelle ändert (z.B. Preisänderungen).
  2. Datenüberprüfung: Führe ein Makro aus, um Eingaben in bestimmten Zellen zu validieren und sicherzustellen, dass sie den Anforderungen entsprechen.
  3. Automatisierung: Trigger ein Makro, das andere Prozesse in Excel startet, wie das Aktualisieren von Diagrammen oder das Berechnen von Werten.

Tipps für Profis

  • Nutze die Application.EnableEvents-Eigenschaft, um zu verhindern, dass das Makro in einer Schleife ausgelöst wird, wenn es selbst eine Zelle ändert.

    Private Sub Worksheet_Change(ByVal Target As Range)
      Application.EnableEvents = False
      ' Dein Code hier
      Application.EnableEvents = True
    End Sub
  • Teste dein Makro gründlich, um sicherzustellen, dass es unter verschiedenen Bedingungen richtig funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich das Makro für mehrere Zellen gleichzeitig aktivieren? Du kannst mehrere Zellen in der Intersect-Funktion angeben, wie in den obigen Beispielen gezeigt.

2. Was passiert, wenn ich das Makro nicht im richtigen Arbeitsblattcode einfüge? Das Makro wird nicht ausgeführt, wenn du es im Modul oder in einem anderen Arbeitsblatt einfügst. Stelle sicher, dass es im Codefenster des richtigen Arbeitsblatts ist.

3. Kann ich das Makro auch für andere Ereignisse verwenden? Ja, es gibt auch andere Ereignisse wie Worksheet_SelectionChange, die du verwenden kannst, um das Verhalten zu steuern, wenn sich die Auswahl ändert.

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