Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Bernd f. am Dezember 02, 2017, 23:58:51 Nachmittag

Titel: Zeiteingabe mit einem Automtischen Doppelpunkt
Beitrag von: Bernd f. am Dezember 02, 2017, 23:58:51 Nachmittag
Ich suche eine Möglichkeit eine Tabelle mit 2 Spalten Zeitangaben Anfang Ende einzugeben ohne jedesmal den Doppelpunkt eingeben zu müssen den Trick mit der Autokorrektur haben wir bereits drin ich habe ein Vba Macro gefunden das für eine Spalte das Problem lösen würde ich weiß aber nicht wie ich die zweite Spalte eingeben muß leider habe ich absolut keine Ahnung wie das gemacht wird oder nach welchen Stichworten ich hier im Forum suchen muß.
Hier was ich gefunden habe.

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim Eingabe As Variant
 
   On Error GoTo ErrorHandler
   If Not Intersect(Target, Columns(1)) Is Nothing Then
      Application.EnableEvents = False
      With Target
         .Value = CDate(Left(Format(Target, "0000"), 2) & ":" & Right(Target, 2))
         .NumberFormat = "[hh]:mm"
      End With
   End If
ErrorHandler:
   Application.EnableEvents = True
End Sub

es wären nicht Columns(1) sondern 3 und 4 was ich versucht habe sind (Target, Columns(3)), Columns(4)) oder (Target, Columns(3)),(Target, [Columns(1)]) und verschiedenes andere wie das geschrieben wird absolut keine Ahnung was ich tun muß oder wo nach ich suchen muß hoffe es kann mit jemand helfen Danke schon mal im vorraus. Eine Kleinigkeit noch als Ergebniss dieses Scripts bekomme ich 07:45:00 AM/PM ich vermute mal das das ein Amerikansches Format ist wenn das als 07:45 also Stunden und Minuten dargestellt würde wäre das optimal. Vielen Dank schon mal im voraus für lesen !!
Titel: Antw: Zeiteingabe mit einem Automtischen Doppelpunkt
Beitrag von: lupo1 am Dezember 03, 2017, 06:21:19 Vormittag
Private Sub Worksheet_Change(ByVal T As Range)
If Abs(T.Column - 3.5) > 1 Then  Exit Sub
Application.EnableEvents = False
T = "=--TEXT(LEFT(SUBSTITUTE(IF(ABS(CODE(" & _
"""" & T & """" & ")-54)<4,0,)&" & """" & T & _
"""" & "&""00000000"",""q"",0),9),""00\:00\:00\,000"")"
T = T.Value
Application.EnableEvents = True
End Sub

Lohnt sich für "Viel-Zeit-Erfasser". Schneller geht es dann wirklich nicht mehr, aber man muss die Logik (von mir 2006 (http://xxcl.de/0018.htm) entworfen) dahinter etwas kapieren:

Formatiere Spalten C:D als hh:mm:ss,000 und gib dort - spaßeshalber zum Lernen - die Werte vor dem Gleichheitszeichen ein:

1 = 10:00
2 = 20:00
3 = 03:00
:::
9 = 09:00
11 = 11:00
21 = 21:00
31 = 03:10
::
91 = 09:10
24 = 1 00:00
29 = 1 05:00
q1 = 01:00
q2 = 02:00
q3 = 03:00 (wie ohne q)
123456 = 12:34:56
291234567 = 1 05:12:34,567

Sollte Dich das q als Füllbuchstabe nerven, kannst Du auch ein anderes Zeichen wählen (nicht: Komma oder #).

Titel: Antw: Zeiteingabe mit einem Automtischen Doppelpunkt
Beitrag von: Bernd f. am Dezember 03, 2017, 10:13:11 Vormittag
Vielen Dank funktioniert gut und da die Zeiten zwischen 07uhr und 18 uhr liet ist das mit dem q nicht nötig tolle arbeit danke nochmal :)!!!!!
Titel: Antw: Zeiteingabe mit einem Automtischen Doppelpunkt
Beitrag von: lupo1 am Dezember 03, 2017, 10:39:40 Vormittag
Freut mich! Danke für's Feedback!