Ausführen eines Makros bei Änderung bestimmter Zellen in Excel

Zusammenfassung

Sie können in Microsoft Excel ein Makro erstellen, das nur ausgeführt wird, wenn ein Wert in eine Zelle eines bestimmten Tabellenblatts oder eines beliebigen geöffneten Tabellenblatts eingegeben wird.

Beachten Sie dabei jedoch, dass Sie nicht unnötigerweise Makros ausführen sollten, da dadurch die Leistung von Excel herabgesetzt wird.

Weitere Informationen

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind. In vielen Fällen sollen Makros nur dann ausgeführt werden, wenn bestimmte Zellen mit Werten befüllt werden (in diesem Artikel als „Schlüsselzellen“ bezeichnet). Damit ein großes Makro nicht bei jeder Eingabe eines Werts in eine Zelle eines Tabellenblatts ausgeführt wird, müssen Sie prüfen, ob die ActiveCell eine der Schlüsselzellen ist. Wenden Sie dazu die Intersect-Methode auf die ActiveCell und den Bereich an, der die Schlüsselzellen enthält, um zu überprüfen, ob die ActiveCell eine der Schlüsselzellen ist. Wenn sich die ActiveCell in dem Bereich befindet, der die Schlüsselzellen enthält, können Sie das Makro aufrufen.

So erstellen Sie das Visual Basic-Makro:

  1. Klicken Sie mit der rechten Maustaste auf die Registerkarte „Tabelle1“, und klicken Sie dann auf „Code anzeigen“.

    Das Modulblatt hinter „Tabelle1“ wird geöffnet.

  2. Geben Sie den folgenden Code in das Modulblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim KeyCells As Range
    
    ' The variable KeyCells contains the cells that will
        ' cause an alert when they are changed.
        Set KeyCells = Range("A1:C10")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then
    
    ' Display a message when one of the designated cells has been 
            ' changed.
            ' Place your code here.
            MsgBox "Cell " & Target.Address & " has changed."
    
    End If
    End Sub
    
  3. Klicken Sie im Menü „Datei“ auf Schließen und zurück zu Microsoft Excel.

Bei einer Eingabe in den Zellen A1:C10 in „Tabelle1“ wird nun ein Meldungsfeld angezeigt.