Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
548to552
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
548to552
548to552
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Unkorrekte Zeiteingaben verarbeiten

Unkorrekte Zeiteingaben verarbeiten
17.01.2005 20:59:22
BigWoelfi
Hallo,
da ich mir nicht sicher bin, ob in meinem Thread vom 14.01. noch wer lesen wird, bei der Menge von Beiträgen hier, mache ich mal sicherheitshalber einen neuen Thread auf.
In der Zwischenzeit habe ich auch weiter rumprobiert, so dass der TExt nicht mehr mit dem Beitrag aus dem alten Thread übereinstimmt.
Es ist folgendes Problem aufgetaucht:
Es geht um die Eingabe von Uhrzeiten in einem Arbeitszeitnachweis. So wie es jetzt ist, wird ausschließlich die Eingabe von zum Besipiel "07:00" akzeptiert, also Format "hh:mm", da die entsprechenden Zellen mit Format "hh:mm" formatiert sind.
Das ist mir so aber nichts. Ich möchte gern, dass die Eingaben ausgewertet und in das gleiche Format umgesetzt und dann in die Zelle zurückgeschrieben werden.
Wie das Zurückschreiben funktioniert, weiß ich.
Das Problem liegt offenbar in etwas ganz Speziellem.
Ich möchte, dass folgende Dinge möglich sind, ohne dass ich das Zellformat ändern muss, weil da in der Folge noch Berechnungen mit den Zellinhalten stattfinden müssen.
Beispiele für Eingaben:
Eingabe = Zeit
6 = 06:00
06 = 06:00
600 = 06:00
630 = 06:30
13 = 13:00
1330 = 13:30
usw..
Mein bisheriger Code dazu lautet:
Dim Inhalt
If Intersect(Target, Range("E11:F41")) Is Nothing Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
Application.EnableEvents = False
Inhalt = Target.Value
If Len(Inhalt) = 1 Then
Target.Value = "0" & Inhalt & ":00"
ElseIf Len(Inhalt) = 2 Then
Target.Value = Inhalt & ":00"
ElseIf Len(Inhalt) = 3 Then
Target.Value = "0" & Left(Inhalt, 1) & ":" & Right(Inhalt, 2)
ElseIf Len(Inhalt) = 4 Or Len(Inhalt) = 5 Then
Target.Value = Left(Inhalt, 2) & ":" & Right(Inhalt, 2)
End If
Das funktioniert in der Regelauch so, egal, ob ich führende Nullen abfrage oder nicht, außer, wenn bestimmte Zeiten in die Zellen eingegeben werden.
Folgendes passiert bzw. wird tatsächlich gewandelt:
Eingabe - Variable Inhalt - Zurückgeschrieben
06:00 - 0,25 - 0,:25
12:00 - 0,5 - 00:,5
18:00 - 0,75 - 0,:75
24:00 - 1,0 - 01:00
Wenn ich statt "Dim Inhalt" "Dim Inhalt as Date" verwende, funktioniert zwar der automatische Voreintrag für Arbeitszeiten. Gibt der Anwender aber die von mir gewollten Eingaben, führt dies logischerweise zu Fehlern in Folgemakros, weil "Inhalt" dann für "6" zum Beispiel "05.01.1900" enthält.
Fällt jemandem dazu eine Lösung ein?
Bei der Gelegenheit: Was muss man machen, damit auch 00:00 und 24:00 korrekt angezeigt werden? Das geht nämlich nicht, wenn man das Makro ganz weglässt.
Gruß, Wolfgang

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

Betreff
Datum
Anwender
Anzeige
AW: Unkorrekte Zeiteingaben verarbeiten
Juergen
Also 24:00 Uhr und mehr wird angezeigt wenn du die Celle mit [hh:mm] formatierst.
Die Eckige Klammer ist entscheidend.
Aber ansonsten habe ich dein Problem nicht erkannt.
Ich fange die Fehleingaben der Anweder schon bei der Eingabe ab. Deswegen lasse ich sie nur in einem Userform tippen und melde Fehleingabe sofort per Msgbox.
gruß Jürgen
AW: Unkorrekte Zeiteingaben verarbeiten
18.01.2005 00:08:19
BigWoelfi
Hallo Jürgen,
der Hinweis war gut, wenn auch nicht ganz richtig.
Nicht [hh:mm], sondern [hh]:mm funktioniert.
Gruß, Wolfgang
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige