Excel VBA - Makro ausführen, wenn in D21 ein bestimmter Wert eingegeben wird

Excelmania

Lieutenant
Registriert
Apr. 2010
Beiträge
794
Hallo.

ich möcht geerne, dass wenn in D21 ein bestimmter Wert eingegeben wird ein Makro ausgeführt wird.

Folgende Code habe ich zum test geschrieben:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$21" Then
If Target.Value = "Test" Then
    MsgBox ("test")
End If
End If
End Sub

klappt aber leider nicht.
 
Versuch es mal mit

Private Sub Worksheet_Change(ByVal Target As Range) If Range("D21") = "Test" Then MsgBox ("Test") End Sub
 
super. klappt doch, nachdem ich das Tabellenblatt einmal gewechsel habe^^
 
Auch keine schöne Prüfung, weil du prüfst jetzt nicht mehr, ob der Wert Test in D21 eingetragen wird, sondern du prüfst, ob irgendeine Änderung passiert und dabei der Wert Test in D21 drin steht.

Besser:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("D21")) Is Nothing And Range("D21") = "Test" Then
    MsgBox "D21 geändert und Test steht drin"
  End If
End Sub
https://docs.microsoft.com/de-de/office/vba/api/excel.application.intersect
 
Zurück
Oben