Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige