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

Zeiteingabe ohne Doppelpunkt, nur Minuten

Zeiteingabe ohne Doppelpunkt, nur Minuten
26.04.2005 10:57:50
Josef
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

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
26.04.2005 11:04:37
Galenzo
Zellformat: 00":"00":"00
(und in der Nachbarzelle umrechnen)
Viel Erfolg!
AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
26.04.2005 11:07:24
Josef
Hallo Galenzo,
aber ich wollte das ohne Hilfsspalte lösen und lieber mit diesem Makro, da mehrere das Programm benutzen.
Danke.
Josef
AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
26.04.2005 11:17:53
Boris
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
Anzeige
AW: Zeiteingabe ohne Doppelpunkt, nur Minuten
26.04.2005 11:31:19
Josef
Hallo Boris,
genial einfach.
Und ich verstehe sogar den Code halbwegs. :-)
Danke vielmals...
Grüsse
Josef
150 = 2:30 !!!
26.04.2005 12:58:17
ingoG
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
&ltpre&gt
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) &gt 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&lt/pre&gt
Anzeige
AW: 150 = 2:30 !!!
26.04.2005 15:12:24
Josef
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
AW: 150 = 2:30 !!!
26.04.2005 15:26:36
Josef
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
AW: 150 = 2:30 !!!
26.04.2005 15:29:45
Josef
Hallo,
sorry habe ich 2 mal gepostet.
Josef
AW: 150 = 2:30 !!!
26.04.2005 15:52:14
ingoG
Hallo Josef,
versuch mal
if not intersect(target,range("a1:a41")) is nothing then...
Gruß Ingo
Anzeige
AW: 150 = 2:30 !!!
26.04.2005 16:33:34
Josef
Hallo Ingo,
danke jetzt läuft es. :-)
Grandios.
Danke
Josef
Danke für die Rückmeldung oT
26.04.2005 16:54:56
IngoG
.
AW: Danke für die Rückmeldung oT
27.04.2005 14:41:57
Josef
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
Anzeige
Nochmal ohne Doppelpunkt und nur Minuten
27.04.2005 16:38:43
Josef
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
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige