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

Doppelpunkt bei Zeiteingabe

Doppelpunkt bei Zeiteingabe
07.07.2003 12:18:58
Bernd
Hallo liebe Excelspezialisten,
ich muß häufig Zeiteingaben machen, dabei stört, dass der Doppelpunkt nicht auf dem Nummernblock vorhanden ist. Eine Zellenformatierung möchte ich nicht verwenden.
Gibt es die Möglichkeit z.B. per Tastenfolge STRG + / den Doppelpunkt zu aktivieren und mit der Eingabe Std:Min zu kombinieren?
Mit Application.OnKey "^/}" bin ich nicht weitergekommen.
Kann mir jemand helfen oder einen Tipp geben?
Gruß
Bernd

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelpunkt bei Zeiteingabe
07.07.2003 12:26:34
snickers
folgenden Tip habe ich aus einem Forum erhalten:
in die Autokorrektur **(o.ä) = : aufnehmen
dann die Zeiteingabe 20**25
snickers

AW: Doppelpunkt bei Zeiteingabe
07.07.2003 21:08:02
Leif
Folgendes Makro als Worksheet Change
hilft auch!
in Diesem Beispiel erfolgt die Umwandlung der 4stelligen Zahl (1300) in 13:00 nur in den Spalten 7 und 9!
Der Bereich ist in der 3. Zeile bis zur 11 Spalte eingegrenzt. Individuelle Anpassung sollte also kein Problem darstellen
Gruß Leif

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%, xpos
If Target.Column < 0 Or Target.Column > 11 Then Exit Sub
' Auslesen der aktuellen Position (Spalte und Zeile)
xSpalte = "" & Target.Column
'Hier umsetzen der Spaltenzahlen ( 2 = B, 3 = C etc.)
Select Case xSpalte
Case 7, 9
xSpalte = Target.Column
xZeile = Target.Row
Case Else
'Rauswerfen wenn andere als o.a. Zeilen
Exit Sub
End Select
'Prüfen ob die ZellenZahl im Bereich 4 - 36 liegt
If xZeile >= 4 And xZeile <= 36 Then
xZeile = Target.Row
Else
'Wenn nicht dann
Exit Sub
End If
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


Anzeige
AW: Doppelpunkt bei Zeiteingabe
08.07.2003 00:24:00
PeterW
Hallo Leif,
sorry für die Einmischung in deinen Code aber meinst du nicht auch, dass er - wenn er überhaupt den Aufwand für das zu erreichende Ziel rechtfertigt - etwas überarbeitet werden sollte?
Wo sind beispielsweise xZeile und xSpalte dimensioniert? Warum überhaupt Variablen einführen und in xSpalte Target.Column schreiben um dann per Select Case der Variablen xSpalte Target.Column zuzuweisen? Target.Column < 0; wie soll das denn gehen?
Wir haben alle mal angefangen mit VBA. Ich poste hier nur um Mitleser/-Lerner, die noch etwas unbedarfter sind, im Archiv darauf hinzuweisen, dass der Code gelinde gesagt nicht optimal ist.
Gruß
Peter

Anzeige
AW: Doppelpunkt bei Zeiteingabe
08.07.2003 13:19:08
Leif
Hallo Peter,
Mag sein, dass das Makro nicht weltbestes VBA ist, aber ich bin dort kein Fachmann.
Ich verwende es allerdings erfolgreich in einer riesigen Tabelle und nur bestimmte Spalten (die 7. und die 9.)im Bereich von der 4.bis zur 36 Zeile sollen die Wandlung der Zahlen in Uhrzeiten erhalten. Andere Zellen enthalten auch Formeln, die widerum nicht das Ergebnis als Uhrzeit darstellen sollen.
Bei einer benutzerdefinierten Ersetzung von Zeichen "." in ":" ist oft die Folge, dass mit der Uhrzeit/Ergebnis nicht vernünftig weitergerechnet werden kann.
Wer eine solche Lösung braucht, kann ja o.a. Makro kopieren und in den VBA-Editor in seine Mappe kopieren. Das ist nun wirklich kein großer Aufwand.
Hier: If Target.Column < 0 Or Target.Column > 11 Then Exit Sub -die 11 entsprechend der benötigten Spalten die 11 auf den benötigten Spaltenbereich ersetzen;
Hier: Case 7, 9 -die Spalten eintragen, in denen das Makro wirken soll.
Dafür steht 1für A, 2für B, 3für C usw.
'Prüfen ob die ZellenZahl im Bereich 4 - 36 liegt
Hier:If xZeile >= 4 And xZeile <= 36 Then -steht das von Zeile 4 bis Zeile 36 das Makro aktiv ist. Das kann man auch entsprechen des BEdarfes ändern.
Lieber Peter, wenn Du natürlich ein schöneres Makro fertigen kannst, würde ich mich freuen,wenn du mir das übermitteln könntest. Gruß und Dank Leif

Anzeige
AW: Doppelpunkt bei Zeiteingabe
08.07.2003 17:43:05
PeterW
Hallo Leif,
ob das jetzt schöner ist sollen andere beurteilen, zumindest kommt ohne Variablenhüpferei aus.
Bei dem anderen Vorschlag ging es nicht um Ersetzen sondern um Autokorrektur. Probier es mal aus, das Worksheet_Change-Ereignis ist hier wirklich nicht erforderlich.
Gruß
Peter

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 4 Or Target.Row > 36 Then Exit Sub
If Not (Target.Column = 7 Or Target.Column = 9) Then Exit Sub
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
With Target
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
Select Case Len(.Value)
Case 1
.Value = "00:0" & .Value
Case 2
.Value = "00:" & .Value
Case 3
.Value = "0" & Left(.Value, 1) & ":" & Right(.Value, 2)
Case Else
.Value = Left(.Value, Len(.Value) - 2) & ":" & Right(.Value, 2)
End Select
End If
End With
Application.EnableEvents = True
End Sub


Anzeige
AW: Doppelpunkt bei Zeiteingabe
09.07.2003 02:11:07
Leif
Hallo Peter,
vielen Dank, dass Du Dich noch einmal gemeldet hast, funzt einwandfrei, deine Version.

AW: Doppelpunkt bei Zeiteingabe
09.07.2003 02:33:04
PeterW
Hallo Leif,
danke für die Rückmeldung. Versuch trotzdem mal den anderen Weg über Autokorrektur, der ist einfacher. :-)
Gruß
Peter

AW: Doppelpunkt bei Zeiteingabe
07.07.2003 12:23:32
PeterW
Hallo Bernd,
gib statt des Doppelpunktes zwei Komma ein und ergänze in der Autokorrektur ,, ersetzen durch :.
Gruß
Peter

AW: Doppelpunkt bei Zeiteingabe
07.07.2003 13:22:30
Bernd
Daaaanke, das ist ja so was genial und einfach!!!

Danke, guter Tipp, kann ich auch brauchen o.T.
07.07.2003 13:05:30
Franz W.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige