Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Datumsüberprüfung bei neuem Eintrag

VBA Datumsüberprüfung bei neuem Eintrag
12.12.2016 11:36:22
Matti63
Hallo zusammen,
ich benötige Eure Hilfe bei einem VBA Code.
In einer Tabelle (Tabellenblatt) in der Spalte A ab A5 bis unendlich wird ein Datum eingegeben. VBA soll nun prüfen ob das eingegebene Datum grösser oder kleiner 31 Tage von Heute ist und eine Meldung zB. "Bitte Datumseingabe prüfen" erscheinen falls das eingegebene Datum ausserhalb liegt. Diese Meldung soll nur bei einem neuen Eintrag erscheinen.
Für Eure Hilfe bin ich Euch sehr dankbar.
Liebe Grüsse
Matti
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Datumsüberprüfung bei neuem Eintrag
12.12.2016 11:49:51
UweD
Hallo
so?
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Diesen Code dort reinkopieren
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    If Not Intersect(Range("A:A"), Target) Is Nothing Then
        If Target.Row < 5 Then Exit Sub
        If Target.Count <> 1 Then
            Application.EnableEvents = False
            Application.Undo
            MsgBox "Bitte nur eine Zelle bearbeiten"
        Else
            If Target >= Date + 31 Or Target < Date - 31 Then
                MsgBox "Bitte Datumseingabe prüfen"
            End If
        End If
    End If
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Anzeige
AW: VBA Datumsüberprüfung bei neuem Eintrag
12.12.2016 14:45:19
Matti63
Hallo Uwe
Besten Dank für Deine Hilfe. Soweit ich das testen konnte ist es das was ich wollte. Ich hatte unter
Private Sub Worksheet_Change(ByVal Target As Range)

Bereits einen Code drin, der verhindern sollte dass eine Zeile (gesamt) gelöscht wird.
Dein Teilcode

If Target.Count  1 Then
Application.EnableEvents = False
Application.Undo
MsgBox "Bitte nur eine Zelle bearbeiten"

macht aber eigentlich das was ich mit diesem Code gemacht habe:
Private Sub Worksheet_Change(ByVal Target As Range)
Static Zeilen As Long
If Me.UsedRange.Rows.Count 

Ich habe vergessen zu erwähnen, dass die Tabelle mit Tabellentool erstellt ist. Somit wird die Tabelle nur erweitert wenn im A ein Datum eingegeben wird. Somit könnte man Deinen Teilcode so umwandeln, wenn der User versucht eine Zeile zu löschen dies nicht möglich ist.
Was bedeutet den jetzt genau Dein Teilcode?
Wie ich das sehe, falls der User mehrere Zellen auswählt und versucht etwas zu ändern kommt die _ Meldung

MsgBox "Bitte nur eine Zelle bearbeiten"

Ist das in etwa richtig?
Wie kann ich jetzt mein Code in Deinen Code reinbringen, dass verhindert wird, dass keine Zeile gelöscht wird?
Liebe Grüsse
Matti
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

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