Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeiteingabe ohne Doppelpunkt

Zeiteingabe ohne Doppelpunkt
Winfried
Hallo liebe Experten,
ich habe diesen Code seit vielen Jahren für eine Erfassung von Arbeitszeiten genutzt (gefunden hier im Archiv 2003).
Es ergibt sich eine Besonderheit: Wenn man 2400 in die Zelle einträgt, wird daraus die Anzeige 00:01 bei 0000 bleibt die Zelle leer. Wie kann ich den Code ändern
damit eine Anzeige 00:00 erscheint, weil mit diesen Zeiten auch noch weiter gerechnet wird, und auch jemand um Mitternacht seinen Dienst beginnt.
Sub Formatierung(Zelle) Dim s%, m%, z% With Range(Zelle) If .Value = "" Then Exit Sub If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then If Len(.Value) > 2 Then s = Left(.Value, Len(.Value) - 2) m = Right(.Value, 2) 'Bei dieser Einstellung kann keine Uhrzeit _ die mit 0 beginnt z.B. 00:30 eingegeben werden 's = .Value 'm = 0 Else s = 0 m = .Value End If .Value = s & ":" & m End If End With End Sub
Vielen Dank für eine hilfreiche Antwort
Winfried
Anzeige
AW: Zeiteingabe ohne Doppelpunkt
04.03.2010 16:24:23
Schorschi
Hallo Winfried,
Vorschlag ohne VBA:
Die Zellen "Benutzerdefiniert" formatieren.
Im Feld Typ das Format:
00":"00 oder
00":"00 "Uhr" eingeben und mit OK bestätigen.
Gruß
Schorschi
AW: Zeiteingabe ohne Doppelpunkt
04.03.2010 16:59:00
Winfried
Hallo Schorschi,
das funktioniert nicht so wie ich es benötige, wenn ich die Zellen wie vorgeschlagen formatiere werden alle Eingaben egal ob 0800, 2400 oder 0530 als 00:00 wiedergegeben.
Danke
Winfried
Anzeige
AW: Zeiteingabe ohne Doppelpunkt
04.03.2010 17:14:16
Schorschi
Hallo Winfried,
funktioniert bei mir aber wie gewünscht!!
Mit Tastenkombi [Strg]+[1] Dialog Zellenformatieren aufrufen.
Wechseln auf Registerkarte Zahlen,
im Listenfeld Kategorie auf den Eintrag Benutzerdefiniert wechseln.
Im Feld Typ das Format 00":"00 oder 00":"00 "Uhr" eingeben und mit OK bestätigen.
Evtl. falsch mit 00:00 formatiert? ... richtig wie geschrieben 00":"00 ...Gänsefüsschen sind wichtig!!
Nix für ungut
Gruss
Schorschi
Anzeige
AW: Zeiteingabe ohne Doppelpunkt
04.03.2010 17:28:30
Winfried
Hallo Schorschi,
ich habe es genau so gemacht wie du es beschrieben hast. Es funktioniert nicht, das hängt aber mit den Tabellen zur Arbeitszeiterfassung zusammen. Bei einer "Normalen" Excel Tabelle funktioniert deine Empfehlung. Aufgrund von verschiedenen Makros, benötige ich leider eine VBA-Lösung.
Trotzdem vielen Dank für die Mühe
Gruss
Winfried
Anzeige
Das mit den Länge-Abfragen ist völlig...
04.03.2010 16:27:55
Luc:-?
…überflüssig, Winfried,
wenn du deinen Wert erst mal mit Right(WorksheetFunction.Text(Zelle, "0000"), 4) auf genau 4 Stellen bringst. Außerdem ist das keine Formatierung ieS, sondern eine Zellwertergänzung, die eine bestimmte Autoformatierung auslöst.
Gruß Luc :-?
AW: Das mit den Länge-Abfragen ist völlig...
04.03.2010 16:54:50
Winfried
Hallo Luc,
danke für die Antwort, aber ich verstehe nicht ganz was ich an welcher Stelle wie ändern muss damit es mit der Eingabe klappt. Kannst du mir das bitte weiter erklären?
Vielen Dank
Winfried
Anzeige
Alles ersetzen, was von...
04.03.2010 17:24:21
Luc:-?
If Len(.Value) > 2 Then bis End If steht, Winfried,
und dafür zuerst die bisher offensichtlich nicht verwendete Variable z = Right(WorksheetFunction.Text(Range(Zelle), "0000"), 4) setzen und dann nur die beiden Zeilen s = Left(z, 2) und m = Right(z, 2) zu schreiben. Anschließend brauchst du dann s und m nur noch wie gehabt zusammenzusetzen.
Zelle wird offensichtlich als Adresstext von einer aufrufenden Prozedur übergeben. Wahrscheinl ist das eine Ereignisprozedur wie Worksheet_Change, die das tut. Die hätte natürlich auch gleich das ganze Objekt (Target) weiterreichen können, aber was soll's…
Gruß Luc :-?
Anzeige
AW: Das mit den Länge-Abfragen ist völlig...
04.03.2010 17:29:13
Reinhard
Hallo Winfried,
ich weiß von Excelusern die viele Zeiten einhämmern müssen, daß sie rechts mit dem Zahlenblock das machen, dabei anstatt Doppelpunkt zwei Kommas reinsetzen.
Nach Drangewöhnung geht das fix beim Schreiben.
Über Autokorrektur tauscht dann Excel automatisch die ",," gegen ":".
Mien Code akzeptiert auch 9999 :-)
in Modul des Blattes:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column  1 Then Exit Sub ' 1=Spalte A, 2=Spalte B usw.
With Target
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
Application.EnableEvents = False
.Value = Format(.Value, "00:00")
Application.EnableEvents = True
End If
End With
End Sub
Gruß
Reinhard
Anzeige
AW: Das mit den Länge-Abfragen ist völlig...
04.03.2010 17:47:20
Winfried
Hallo Reinhard,
tausend Dank, das ist genau der Code den ich benötige. Ich hab es gleich mal bei einem Mitarbeiter ausprobiert und es hat super funktioniert.
Viele Grüsse
Winfried
AW: 12:95 Uhr
04.03.2010 17:29:37
00":"00 "Uhr" falsch
Hallo!
Format 00":"00 "Uhr" ist falsch 12:95 gibt es gar nicht
Gruß
Wilfried
AW: Das mit den Länge-Abfragen ist völlig...
04.03.2010 17:32:13
Winfried
Hallo Luc,
ich habe eben vergessen den Haken bei Frage noch offen zu setzen.
Ich weis nicht genau wie ich deine Hilfe anwenden soll. Kannst du mir genauer mitteilen was ich in dem obigen Code wie und wo ändern muss.
Danke
Gruss
Winfried
Anzeige
AW: Das mit den Länge-Abfragen ist völlig...
04.03.2010 21:18:15
Wilfried
Hallo Winfried!
Mit einer Hilfsspalte geht es so und weiter rechnen geht es auch.
Zeit

 ABC
161Uhrzeit Eingabe Zahlen >> in Stunden, Minuten umwandeln  
162   
163   
164175117:51hh:mm
165135513:55 
166900:09 
167 31:55[hh]:mm

Formeln der Tabelle
ZelleFormel
B164=1*(TEXT(A164;"00\:00")+0)
B165=1*(TEXT(A165;"00\:00")+0)
B166=1*(TEXT(A166;"00\:00")+0)
B167=SUMME(B164:B166)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß
Wilfried
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeiteingabe in Excel ohne Doppelpunkt


Schritt-für-Schritt-Anleitung

Um in Excel Uhrzeiten ohne Doppelpunkt einzugeben und zu verarbeiten, kannst Du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es, Eingaben wie "2400" in "00:00" umzuwandeln und ist besonders nützlich, wenn Du auch mit doppelten Uhrzeiten arbeiten musst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Column <> 1 Then Exit Sub ' 1=Spalte A
       With Target
           If .Value = "" Then Exit Sub
           If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
               Application.EnableEvents = False
               .Value = Format(.Value, "00:00")
               Application.EnableEvents = True
           End If
       End With
    End Sub
  4. Schließe den VBA-Editor und teste die Eingabe in der ersten Spalte.


Häufige Fehler und Lösungen

  • Problem: Eingaben wie "0800" oder "2400" erscheinen als "00:00".

    • Lösung: Stelle sicher, dass Du den VBA-Code korrekt eingefügt hast und dass die Zelle als Text formatiert ist, bevor Du die Eingabe machst.
  • Problem: Autokorrektur funktioniert nicht.

    • Lösung: Überprüfe die Einstellungen der Autokorrektur in Excel, um sicherzustellen, dass keine unerwünschten Ersetzungen stattfinden.

Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, gibt es auch die Möglichkeit, die Zellen benutzerdefiniert zu formatieren:

  1. Wähle die gewünschte Zelle aus.
  2. Drücke Strg + 1, um das Dialogfeld Zellen formatieren zu öffnen.
  3. Wähle die Kategorie "Benutzerdefiniert" und gebe im Typ-Feld 00":"00 ein.
  4. Bestätige mit "OK".

Beachte, dass diese Methode nicht immer mit doppelten Uhrzeiten funktioniert.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die Eingaben ohne Doppelpunkt verwalten kannst:

Eingabe Ergebnis
0800 08:00
2400 00:00
1355 13:55
0450 04:50

Diese Umwandlung ermöglicht es Dir, die Uhrzeiten ohne Doppelpunkt einzugeben und korrekt weiterzurechnen.


Tipps für Profis

  • Nutze die VBA-Funktion WorksheetFunction.Text, um sicherzustellen, dass die Eingabe immer auf 4 Stellen normiert wird, bevor die Umwandlung erfolgt.
  • Wenn Du häufig mit Excel arbeitest, erwäge, die Autokorrektur so anzupassen, dass Du durch das Drücken von Kommas (,) automatisch Doppelpunkt (:) erhalten kannst.
  • Teste die Makros vor dem Einsatz in produktiven Tabellen, um sicherzustellen, dass sie wie gewünscht funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich Uhrzeiten ohne Doppelpunkt eingeben und trotzdem mit ihnen rechnen? Um Uhrzeiten ohne Doppelpunkt einzugeben und zu rechnen, kannst Du den oben genannten VBA-Code verwenden, der die Eingaben automatisch formatiert.

2. Gibt es eine Möglichkeit, doppelten Uhrzeiten (wie 2400) korrekt darzustellen? Ja, mit dem VBA-Code wird 2400 in 00:00 umgewandelt, sodass Du auch mit dieser Eingabe weiterrechnen kannst.

3. Funktioniert das in allen Excel-Versionen? Der VBA-Code funktioniert in den meisten modernen Excel-Versionen, stelle jedoch sicher, dass Makros aktiviert sind.

4. Wie kann ich die Eingabe von Uhrzeiten ohne Sekunden umsetzen? Indem Du den Formatierungsstring im VBA anpasst, kannst Du sicherstellen, dass nur Stunden und Minuten angezeigt werden. Der Code oben ist bereits dafür optimiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige