Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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

bei Falscheingabe msgbox oder Korrektur

bei Falscheingabe msgbox oder Korrektur
05.12.2018 16:18:35
Peerli
Hallo liebe Excel-Fans.
Ich habe folgenden Code

Private Sub Worksheet_Change(ByVal Target As Range)
' ***** Tipp von http://  _
_
www.excel-ist-sexy.de/zeit-eingabe-ohne-doppelpunkt/
' Procedur zur Zeiteingabe im Bereich Spalte T und U und X vierstellig => Ausgabe [h:mm]
Dim Eingabe As Variant
On Error GoTo ErrorHandler
If Not Intersect(Target, Range("T12:U42,X12:X42")) Is Nothing Then
Application.EnableEvents = False
With Target
.Value = CDate(Left(Format(Target, "0000"), 2) & ":" & Right(Target, 2))
.NumberFormat = "[h]:mm"
End With
End If
ErrorHandler:
Application.EnableEvents = True
' ************* Ende***********************************************************************
End Sub

...
Er soll bei Eingabe in der Zelle die Formatierungen eintragen, wenn ich nachfolgend nur Zahlen eingebe. Also z.B. 700 für 7:00.
Wie kann ich nun ein Meldung einfügen, wenn der User etwas anderes eingibt, damit ich keine falschen Angaben in die Zelle bekomme. Z.B bei Eingabe von 7:00 statt 700, aber bei 0700 nicht.
Vielen Dank für jede Hilfe.
LG
Peer

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bei Falscheingabe msgbox oder Korrektur
05.12.2018 16:23:41
Hajo_Zi
Hallo Peer,
die für mich einfachste Art zur Zeiteingabe ist.
Stelle bei Autokorrektur ein Ersetzen ,, durch : dann kannst Du Zeiten recht schnell mit der Num-Lock-Tastatur eingeben.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: bei Falscheingabe msgbox oder Korrektur
05.12.2018 18:37:29
Peerli
Hallo Hajo.
Diese Möglichkeit besteht sicherlich auch, aber ich möchte gern alles auf VBA-Basis stellen.
Hintergrund ist der, dass ich mir nicht sicher bin, ob deine Möglichkeit anderen Nutzern meiner Mappe diese Einstellungen bei sich zumuten kann. Oder wird deine Möglichkeit bei Weitergabe meiner Mappe automatisch "vererbt"? Und wie schaut es aus, wenn eine andere oder neuere Excel-Version genutzt wird oder kommt?
LG
Peer
Anzeige
AW: bei Falscheingabe msgbox oder Korrektur
05.12.2018 18:59:46
Peerli
Hallo Hajo.
Danke für deine Dateien.
Bei deinen Lösungen kann man auch nicht valide Werte eingeben.
Zb. in Spalte B (Zeit) 266316, es kommt dann 26:63:16 raus.
Bei der Eingabe soll das halt mit einer Meldung verhindert werden. Am besten mit VBA und noch besser in meinen oder deinen Code.
LG
Peer
AW: bei Falscheingabe msgbox oder Korrektur
07.12.2018 01:33:39
Piet
Hallo Peer
nur aus technischer Neugier habe ich mich gefragt ob man den 1. Code verbessern kann.
Schau dir meine Verbesserungen bitte in Ruhe an. Würde mich freuen wenn es so klappt.
Man kann jetzt auch dreistellige Zahlen ohne Null davor als Uhrzeit eingeben, oder Uhrzeit mit ":"
Bei Text anstatt Zahl oder "266316" kommt Fehlermeldung das nur vierstellige Zahlen erlaubt sind
Sollte der Thread damit beendet sein schliesse ihn bitte, das haeckchen nicht mehr aktivieren!
mfg Piet
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabe As Variant
On Error GoTo ErrorHandler
If Not Intersect(Target, Range("T12:U42,X12:X42")) Is Nothing Then
Application.EnableEvents = False
With Target
'Texte und Zahlen > 4 Stellig als Fehler abfangen
If Not IsNumeric(.Value) Then MsgBox "Eingabe ist keine Zahl!!": GoTo ErrorHandler
If .Value > 1 And Len(.Value) > 4 Then MsgBox "Bitte nur 4 stellige Zahlen eingeben! _
!": GoTo ErrorHandler
If .Value 

Anzeige
AW: bei Falscheingabe msgbox oder Korrektur
07.12.2018 19:38:36
Peerli
Hallo Piet.
Sorry für die späte Antwort.
Vielen Dank für deine Hilfe.
Ich habe deinen Code gleich mal ausprobiert und habe noch folgende Fragen dazu.
Bei Eingabe von Text oder nicht validen Zeitangaben kommt besagte Meldung, was ich schon einmal toll finde und meinem Anliegen entspricht.
Nur sollte der Wert nach Klick auf OK nicht in die Zelle geschrieben werden, sondern der Focus zur Zelle mit der Fehleingabe und die Eingabe von vorn getätigt werden.
Desweiteren wird bei Eingabe einer "richtigen" Zeit (800 oder 8:00 oder 08:00) ein voller Datumswert (z:b. 10.03.1902 00:00:00) in die Zelle geschrieben.
Ich habe schon viele Zellenformate probiert und keiner konte das Ergebnis korrigieren.
Was mache oder habe ich falsch?
LG
Peer
Anzeige
AW: bei Falscheingabe msgbox oder Korrektur
08.12.2018 12:34:00
Piet
Hallo
ich habe den Code noch einmal geaendert. Bitte testen ob er jetzt funktioniert.
mfg Piet
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabe As Variant, fmd As String
On Error GoTo ErrorHandler
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("T12:U42,X12:X42")) Is Nothing Then
Application.EnableEvents = False
With Target
'Texte und Zahlen > 4 Stellig als Fehler abfangen
If Not IsNumeric(.Value) Then
fmd = "Err": MsgBox "Eingabe ist keine Zahl!!"
ElseIf .Value > 1 And Len(.Value) > 4 Then
fmd = "Err": MsgBox "Bitte nur 4 stellige Zahlen eingeben!"
ElseIf .Value > 1 And fmd = Empty Then
.Value = CDate(Left(.Value, Len(.Value) - 2) & ":" & Right(.Value, 2))
End If
.NumberFormat = "[h]:mm"
End With
End If
ErrorHandler:
If fmd = "Err" Then
Target.Value = Empty
Target.Select
End If
Application.EnableEvents = True
End Sub

Anzeige
AW: bei Falscheingabe msgbox oder Korrektur
08.12.2018 13:34:48
Peerli
Hallo Piet.
Er funktioniert super. Danke.
Eins macht er noch nicht. Er geht nicht in die Zelle zurück, sondern wechselt in die nächste Zelle, mit "Enter" in die darunterliegende, mit "Cursor links" in die linke...
Ansonsten ist es ein super Anhaltspunkt, den ich vielleicht noch ein wenig ausbauen möchte.
LG
Peer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige