Excel Datenüberprüfung auf Zelle mit Format hhmm
Mittels einer Datenüberprüfung soll verhindert werden, dass Benutzer falsche Werte in Zellen mit benutzerdefiniertem Format eingeben.
Hallo Forum,
ich möchte in Excel 2007/2010 (sxls-Format) in Zellen, die das benutzerdefinierte Format [hh]:mm (mit den eckigen Klammern!) haben verhindern, dass Benutzer andere Werte (z.B. 12.45) eingeben können. Die Eingabe muss zwingend mit ":" erfolgen.
Es soll auch möglich sein negative Werte einzugeben. Also z.B. 12:45 oder -12:45.
Ich habs leider nicht hinbekommen ein gültige Formel für die Datenüberpüfung zu hinterlegen und im Internet auch noch keine Lösung dafür gefunden.
Kann mir da jemand von euch helfen?
Vielen Dank!
Michi
Hallo Forum,
ich möchte in Excel 2007/2010 (sxls-Format) in Zellen, die das benutzerdefinierte Format [hh]:mm (mit den eckigen Klammern!) haben verhindern, dass Benutzer andere Werte (z.B. 12.45) eingeben können. Die Eingabe muss zwingend mit ":" erfolgen.
Es soll auch möglich sein negative Werte einzugeben. Also z.B. 12:45 oder -12:45.
Ich habs leider nicht hinbekommen ein gültige Formel für die Datenüberpüfung zu hinterlegen und im Internet auch noch keine Lösung dafür gefunden.
Kann mir da jemand von euch helfen?
Vielen Dank!
Michi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 203220
Url: https://administrator.de/contentid/203220
Ausgedruckt am: 26.11.2024 um 11:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Michi,
die Datenüberprüfung ist nicht besonders sicher. Wenn z.B. ein unzulässiger Wert durch Copy&Paste in die Zelle eingefügt wird, greift die Datenüberprüfung nicht, in dem Fall wird sie sogar beseitigt.
Besser wäre es, folgendes VBA-Makro in das entsprechende Arbeitsblatt oder die Arbeitsmappe einzufügen:
Hier wird für die Prüfung die Klasse für Reguläre Ausdrücke aus VBScript verwendet. Dadurch ist auch die Erkennung von ungültigen Uhrzeiten (z.B. 24:05 oder 23:130) möglich.
Bei dem verwendeten Zahlenformat "
Gruß
Friemler
die Datenüberprüfung ist nicht besonders sicher. Wenn z.B. ein unzulässiger Wert durch Copy&Paste in die Zelle eingefügt wird, greift die Datenüberprüfung nicht, in dem Fall wird sie sogar beseitigt.
Besser wäre es, folgendes VBA-Makro in das entsprechende Arbeitsblatt oder die Arbeitsmappe einzufügen:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim objRegExp As Object
Dim mbrChoice As VbMsgBoxResult
If Target.Cells.Count < 1 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If Target.NumberFormat <> "[hh]:mm" Then Exit Sub
Application.EnableEvents = False
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Pattern = "^[-]*([01][0-9]|2[0-3]):[0-5][0-9]$"
If Not objRegExp.Test(Trim(Target.Cells(1, 1).Text)) Then
Target.Cells(1, 1).Activate
mbrChoice = MsgBox("Geben Sie die Zeit im Format [-]HH:MM ein.", _
vbApplicationModal + vbCritical + vbRetryCancel + vbDefaultButton1, _
"Falsches Format")
Target.Cells.ClearContents
If mbrChoice = vbRetry Then SendKeys "{F2}"
End If
Application.EnableEvents = True
End Sub
Hier wird für die Prüfung die Klasse für Reguläre Ausdrücke aus VBScript verwendet. Dadurch ist auch die Erkennung von ungültigen Uhrzeiten (z.B. 24:05 oder 23:130) möglich.
Bei dem verwendeten Zahlenformat "
[hh]:mm
" wirst Du allerdings Probleme mit der Eingabe von negativen Werten bekommen. Definiere besser "* @
" als Zahlenformat (ohne Anführungszeichen), Du musst das dann auch in Zeile 7 des obigen Scripts anpassen. Die Uhrzeiten werden dadurch als Text rechtsbündig angezeigt.Gruß
Friemler