Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1404to1408
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

Maske und Uhrzeitproblem

Maske und Uhrzeitproblem
27.01.2015 00:14:13
Vojnic
Hallo,
ich habe eine Tabelle mit den Spalten Schichtnummer, Beginn, Ende, Dauer usw. Mit einer Eingabemaske kann ich die Daten in die Datenbank auf einfache weise einfügen. Das klappt ziemlich gut. Einige Mitarbeiter wollen aber den Umständlichen Doppelpunkt sparen. Deswegen habe ich folgenden Code von hier verwendet:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%
If Intersect(Target, Range("B2:G150")) Is Nothing Then Exit Sub
With Cells(Target.Row, Target.Column)
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
If Len(.Value) > 2 Then
s = Left(.Value, Len(.Value) - 2)
m = Right(.Value, 2)
Else
s = .Value
m = 0
End If
.Value = s & ":" & m
End If
End With
End Sub

Wenn ich jetzt in die Zellen die Uhrzeit eingebe klappt es ganz gut, bis auf die Stunde zwischen 0 und 1 Uhr. 0005 werden nicht als 00:05 sondern als 05:00 umgewandelt.
Mein Hauptproblem liegt jetzt aber bei der Eingabemaske. Zeitangaben mit Doppelpunkt getrennt funktionieren einwandfrei. Wenn ich eine Uhrzeit eingebe, egal welche( 4 stellig ohne Doppelpunkt), wird folgendes Format an die Zelle übergeben:
02.08.1902 00:00:00
Die Zelle bleibt aber im Format [hh]:mm. Dadurch wird folgender Wert angezeigt:
32592:00
Erst mit Doppelklick auf die Zelle zum Bearbeiten und anschließend wieder wegklicken wandelt sich der Wert ins richtige Format um. Hat vielleicht jemand einen Vorschlag wie man diese kleinen Fehler beheben kann? Kann man die Eingabemaske zwingen die Deutsche 24Std. Formatierung anzuzeigen? Standardmäßig ist die Amerikanische drin.
Schon mal Danke für die Mühe.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Maske und Uhrzeitproblem
27.01.2015 04:24:16
Luschi
Hallo Vojnic,
- setze mal in der gelb markierten Zeile im Vba-Code 1 Haltepunkt (F9-Taste)
- gebe dann in einer Zelle den Wert 0005 ein
- dann in den Direktbereich gehen und ? value eingeben und Entertaste drücken
- dann siehst Du das Ergebnis: 5
- d.h.: Excel-Vba hat bereits die 3 führenden Nullen entfernt, bevor Dein Code überhaupt
  die Daten-Eingabe prüfen kann --> 05:00.
Userbild
Gruß von Luschi
aus klein-Paris

AW: Maske und Uhrzeitproblem
27.01.2015 05:01:01
Tino
Hallo,
versuch mal und arbeite mit TimeSeriel.
Mach aus der 1er u. 10er Stelle die Minuten und
aus 100er u. 1000er die Stunden.
Gruß Tino

Anzeige
AW: Maske und Uhrzeitproblem
27.01.2015 06:47:11
Hajo_Zi
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.

AW: Maske und Uhrzeitproblem
27.01.2015 14:03:53
Vojnic
Danke für die Hinweise. Problem 1 habe ich gelöst. Bleibt nur Problem 2 mit der Eingabemaske.

AW: Maske und Uhrzeitproblem
27.01.2015 15:07:33
Tino
Hallo,
ich hätte es in diese richtung Versucht.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, varValue
Set rng = Intersect(Target, Range("B2:G150"))
If rng Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each rng In rng.Cells
varValue = rng.Value
If IsNumeric(varValue) Then
If varValue = 0 Then
varValue = CDate(varValue)
ElseIf varValue = 0 Then
varValue = Format(varValue, "0000")
varValue = TimeSerial(Left(varValue, 2) * 1, Right$(varValue, 2), 0)
Else
varValue = Empty
End If
End If
rng.Value = varValue
rng.NumberFormat = "hh:mm"
Next rng
Application.EnableEvents = True
End Sub
Gruß Tino

Anzeige
AW: Maske und Uhrzeitproblem
27.01.2015 20:30:41
Vojnic
Danke Tino, habe alles wieder umgeschmissen und eine UserForm gebastelt. Da ist die Eingabe durch einen VBA-script nur in form von 4 zahlen möglich, und wird sofort in Zeitformat mit Doppelpunkt umgewandelt. Da erübrigt sich die Umwandlung im sheet.
Vielen Dank nochmal an alle

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige