Zeiteingabe ohne Doppelpunkt, nur Minuten

Bild

Betrifft: Zeiteingabe ohne Doppelpunkt, nur Minuten
von: Josef
Geschrieben am: 26.04.2005 10:57:50
Hallo zusammen,
ich habe in der Recherche zwar was gefunden, aber so richtig funzt es noch nicht. Also, es müssen Zeiten erfasst werden und da wäre es schön, wenn man nur die 5 eingeben muss und diese dann direkt als 00:05:00 formatiert wird oder 50 und dann 00:50:00 usw.
Folgenden Code habe ich angepasst, aber der streikt noch:


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim h%, m%, s%
    'Soll nur bei einer Eingabe in Spalte AB und G wirksam werden:
    If Target.Column = 1 Or Target.Column = 2 Or Target.Column = 7 Then
    If InStr(Target.Text, ":") > 0 Then Exit Sub
        With Cells(Target.Row, Target.Column)
            If .Value = "" Then Exit Sub
            If IsNumeric(.Value) And InStr(.Value, ",") = 0 Then
                .NumberFormat = "[hh]:mm:ss"
                If Len(.Value) > 2 Then
                    'h = Right(.Value, Len(.Value) - 2)
                    m = Left(.Value, Len(.Value) - 4)
                    s = Left(.Value, 6)
                Else
                    h = 0
                    s = .Value
                    m = 0
                End If
                .Value = m & ":" & s
            End If
        End With
    End If
End Sub

Tja, wäre schön, wenn einer den korrigieren könnte.
Danke schön.
Grüsse
Josef
Bild

Betrifft: AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
von: Galenzo
Geschrieben am: 26.04.2005 11:04:37
Zellformat: 00":"00":"00
(und in der Nachbarzelle umrechnen)
Viel Erfolg!
Bild

Betrifft: AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
von: Josef
Geschrieben am: 26.04.2005 11:07:24
Hallo Galenzo,
aber ich wollte das ohne Hilfsspalte lösen und lieber mit diesem Makro, da mehrere das Programm benutzen.
Danke.
Josef
Bild

Betrifft: AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
von: Boris
Geschrieben am: 26.04.2005 11:17:53
Hi Josef,
quick and dirty - bezogen auf Spalte A:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
With Target
    .NumberFormat = "hh:mm:ss"
    .Value = .Value / 1440
End With
ERRORHANDLER:
Application.EnableEvents = True
End Sub

Grüße Boris
Bild

Betrifft: AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
von: Josef
Geschrieben am: 26.04.2005 11:31:19
Hallo Boris,
genial einfach.
Und ich verstehe sogar den Code halbwegs. :-)
Danke vielmals...
Grüsse
Josef
Bild

Betrifft: 150 = 2:30 !!!
von: ingoG
Geschrieben am: 26.04.2005 12:58:17
Hallo Josef,
obige formel gäbe dir jedoch nicht dasselbe ergebnis zurück wie Deine Ursprüngliche berechnung...
mE war der ansatz schon richtig, die werte nach länge zu unterscheiden und dann die Zeit daraus zu bauen.
hab mal boris formel umgebaut, so dass sie aus 125 1:25:00 macht. (sek können nicht eingegeben werden
Gruß Ingo
<pre>
Private Sub Worksheet_Change(ByVal Target As Range)
If Not ((Target.Column = 1 Or Target.Column = 2 Or Target.Column = 7) And Target.Count = 1) Then Exit Sub
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
With Target
If Len(.Value) > 2 Then
Target = Left(.Value, Len(.Value) - 2) / 24 + Right(.Value, 2) / 1440
Else
Target = Right(.Value, 2) / 1440
End If
.NumberFormat = "[hh]:mm:ss"
End With
ERRORHANDLER:
Application.EnableEvents = True
End Sub</pre>
Bild

Betrifft: AW: 150 = 2:30 !!!
von: Josef
Geschrieben am: 26.04.2005 15:12:24
Hallo Ingo,
danke für die Info, aber im Prinzip werden sowieso nur Minuten eingegeben. Ich werde es aber in jedem Fall testen.
Noch was anderes. Wie muss ich den Code ändern, wenn ich den Bereich eingrenzen will. Also A1:A40 oder so. Bei Range streikt er?
Danke für jeden Tipp.
Danke schön.
Josef
Bild

Betrifft: AW: 150 = 2:30 !!!
von: Josef
Geschrieben am: 26.04.2005 15:26:36
Hallo Ingo,
danke für die Info, werde ich auch mal testen.
Aber, noch eine Frage, wie spreche ich einen bestimmten Bereich an, also z.B. "A1:A41". Leider will er mit Range bei mir nicht.
Danke
Josef
Bild

Betrifft: AW: 150 = 2:30 !!!
von: Josef
Geschrieben am: 26.04.2005 15:29:45
Hallo,
sorry habe ich 2 mal gepostet.
Josef
Bild

Betrifft: AW: 150 = 2:30 !!!
von: ingoG
Geschrieben am: 26.04.2005 15:52:14
Hallo Josef,
versuch mal
if not intersect(target,range("a1:a41")) is nothing then...
Gruß Ingo
Bild

Betrifft: AW: 150 = 2:30 !!!
von: Josef
Geschrieben am: 26.04.2005 16:33:34
Hallo Ingo,
danke jetzt läuft es. :-)
Grandios.
Danke
Josef
Bild

Betrifft: Danke für die Rückmeldung oT
von: IngoG
Geschrieben am: 26.04.2005 16:54:56
.
Bild

Betrifft: AW: Danke für die Rückmeldung oT
von: Josef
Geschrieben am: 27.04.2005 14:41:57
Hallo Ingo und der Rest,
leider hat sich doch noch eine Rückfrage eingeschlichen. Aus irgendeinem Grund funktioniert das mit dem Überwachen nur eines bestimmten Bereiches irgendwie nicht. Ich habe definiert:
If Not Intersect(Target, Range("k8:k41"), Range("l8:l41")) Is Nothing Then Exit Sub
Also, ich dachte, dass dann nur k8 bis k41 und l8 bis l41 überwacht werden, aber wenn ich eine Zahl in einen anderen Bereich eingebe, so wird die Zahl auch formatiert. Das soll aber nicht sein.
Hoffe mir kann mal wieder einer helfen.
Danke und Grüsse
Josef
Bild

Betrifft: Nochmal ohne Doppelpunkt und nur Minuten
von: Josef
Geschrieben am: 27.04.2005 16:38:43
Hallo Ingo und der Rest,
sorry für den neuen Beitrag, aber unten antwortet irgendwie keiner und die Sache drängt. :-o
Leider hat sich doch noch eine Rückfrage eingeschlichen. Aus irgendeinem Grund funktioniert das mit dem Überwachen nur eines bestimmten Bereiches irgendwie nicht. Ich habe definiert:
If Not Intersect(Target, Range("k8:k41"), Range("l8:l41")) Is Nothing Then Exit Sub
Also, ich dachte, dass dann nur k8 bis k41 und l8 bis l41 überwacht werden, aber wenn ich eine Zahl in einen anderen Bereich eingebe, so wird die Zahl auch formatiert. Das soll aber nicht sein.
Hoffe mir kann mal wieder einer helfen.
Danke und Grüsse
Josef
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeiteingabe ohne Doppelpunkt, nur Minuten"