AW: Gültigkeit innerhalb eines Zeitraumes mittels VBA
18.01.2011 19:26:54
fcs
Hallo Lorenz,
die Prüfung der Eingabewerte kannst du wie folgt für mehrere Werte anpassen.
Die Prüfung der Anzahl der Einträge eines Zeichens im Wochenzeitraum ist unabhängig von der Groß-/Kleinschreibung.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SpalteL As Long, SpalteR As Long, Wochentag As Long, AnzWerte As Long
Dim SpalteLetzte As Long, Zeileletzte As Long
Dim wks As Worksheet, Zelle As Range
Dim arrEingabe, iIndex As Long, sEingaben As String, bZulaessig As Boolean
Const vPruefWert = "x"
arrEingabe = Array("x", "X") 'Array mit zulässigen Eingabewerten
Const MaxAnzPruefWerte = 3 'Max. Anzahl Prüfwerte von Mo bis So
'1. Zeile ab der Eingaben geprüft werden sollen - oberhalb dieser Zeile muss ein Datum _
eingetragen sein
Const Zeile1 As Long = 6
'1. Spalte ab der Eingaben geprüft werden sollen
Const Spalte1 As Long = 1
Set wks = ActiveSheet
'Letzte Zeile bis zu der die Eingaben geprüft werden sollen
Zeileletzte = 11
'Letzte Spalte bis zu der Eingaben geprüft werden sollen
'SpalteLetzte = 200 'fester Wert
With wks
'oder dynamisch basierend auf letztem Spalteneintrag in Datumszeile
SpalteLetzte = .Cells(Zeile1 - 1, .Columns.Count).End(xlToLeft).Column + 1
End With
'Prüfung des Eingabebereichs der geänderten Zelle (Target)
If Target.Row >= Zeile1 And Target.Row = Spalte1 And Target.Column MaxAnzPruefWerte Then
Application.EnableEvents = False
'Eingabe wert wieder löschen
Target.ClearContents
Application.EnableEvents = True
MsgBox "In einer Zeile dürfen im Zeitraum Montag bis Sonntag max. " _
& MaxAnzPruefWerte & " """ & vPruefWert & """ eingetragen werden.", _
vbInformation + vbOKOnly, "Prüfung Einträge in Wochenzeitraum"
End If
End If
End Sub