Kein Changebefehl bei Entf

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Kein Changebefehl bei Entf
von: Markus
Geschrieben am: 24.07.2015 11:47:46

Hallo liebes Forum,
ich habe eine Problem mit einem Change Befehl. Hier der Code:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$17" Then
        If Range("B17").Value <> "" Then
            If IsDate(Range("B17")) Then
            Call Datumskontrolle
            Else
            MsgBox "Bitte geben Sie ein gültiges Datum ein", vbOKOnly &  
            vbExclamation, "Kein gültiges Datum"
            End If
        Else
        Worksheets("Master_Bewertung").Range("E19").Value = ""
        Range("E19").Interior.Color = RGB(217, 217, 217)
        End If
        
    End If
End Sub

Zum Verständnis der Datumskontrolle:
Sub Datumskontrolle()  'Überprüft, ob das Erstelldatum des Dokuments über 1 Jahr her ist. Falls  _
ja, wird dies vermerkt.
    Dim heute As Date
    Dim Erstelldatum As Date
    Dim n As Integer
    
    Erstelldatum = Worksheets("Master_Bewertung").Range("B17")
    heute = Date
    
    n = DateDiff("d", Erstelldatum, heute)
    
    
    If n > 365 Then
    Worksheets("Master_Bewertung").Range("E19").Value = "Das Dokument ist über ein Jahr alt!"
    Range("E19").Interior.Color = vbRed
    
    Else
    Worksheets("Master_Bewertung").Range("E19").Value = ""
    Range("E19").Interior.Color = RGB(217, 217, 217)
    End If
    
End Sub
Nun zu meinem Problem:
Der Code funktioniert an sich.
Angenommen ich habe ein Datum in B17 eingetragen und die Funktion wird ausgeführt. Jetzt möchte ich das Datum löschen und zwar mit der Entf-Taste. Leider wird daruch nicht der Changebefehl ausgeführt.
Bsp:
Ich trage das Datum 22.1.2014 in B17 ein. Dadurch wird die Datumskontrolle aufgerufen und der Vermerk in E19 gesetzt, dass das Dokument veraltet ist.
Klicke ich wieder in B17 und drücke Entf, so soll dann auch E19 zurückgesetzt werden. Das geht momentan nur, wenn ich in B17 doppelklicke und dann selbst das Datum rauslösche (durch die Zurück-Pfeiltaste oder Entf).
Ich möchte aber, dass das auch geht, wenn man nur die Zelle anklickt und Entf drückt.
Ich hoffe, ich konnte das Problem genau beschreiben :)
Vielen Dank im Voraus für eure Unterstützung.
Liebe Grüße,
Markus

Bild

Betrifft: AW: Kein Changebefehl bei Entf
von: Rudi Maintaire
Geschrieben am: 24.07.2015 12:39:01
Hallo,
das unterdrückst du doch bewusst.
If Range("B17").Value <> "" Then
Gruß
Rudi

Bild

Betrifft: AW: Kein Changebefehl bei Entf
von: Markus
Geschrieben am: 24.07.2015 12:41:42
Hallo Rudi,
heben ich das aber über "Else" nicht wieder auf?
LG, Markus

Bild

Betrifft: AW: Kein Changebefehl bei Entf
von: Rudi Maintaire
Geschrieben am: 24.07.2015 12:49:20
Sorry, glatt übersehen.
Du änderst in E19 des aktiven Blatts die Farbe!

Private Sub Worksheet_Change(ByVal Target As Range)
  
  If Target.Address = "$B$17" Then
    If Target.Value <> "" Then
      If IsDate(Target) Then
        Call Datumskontrolle
      Else
        MsgBox "Bitte geben Sie ein gültiges Datum ein", _
          vbOKOnly & vbExclamation, _
          "Kein gültiges Datum"
      End If
    Else
      With Worksheets("Master_Bewertung").Range("E19")
        .Value = ""
        .Interior.Color = RGB(217, 217, 217)
      End With
    End If
  End If
  
End Sub

Gruß
Rudi

Bild

Betrifft: AW: Kein Changebefehl bei Entf
von: Markus
Geschrieben am: 24.07.2015 12:58:32
Kein Problem Rudi :)
Auch der von dir beigefügte Code verändert nicht, dass ich durch Anklicken der Zelle und Drücken der Entf-Taste den Changebefehl nicht ausführe...heißt, das zuvor in E19 veränderte Feld bleibt unangetastet.
Eine Idee, woran das liegt?
Danke und Gruß
Markus

Bild

Betrifft: AW: Kein Changebefehl bei Entf
von: Rudi Maintaire
Geschrieben am: 24.07.2015 13:11:26
Hallo,
das läuft mit Sicherheit.
Setz dir mal nen Haltepunkt und geh den Code mit F8 durch.
Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Per Makro aus Excel eine Wordvorlage öffnen "