Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
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
Inhaltsverzeichnis

Stunden / Minuten ohne : eingeben

Stunden / Minuten ohne : eingeben
Mister
Guten Morgen,
vor langer Zeit habe ich folgendes hier im Forum erhalten:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range, RaZelle As Range
Dim InS As Integer
Dim InM As Integer
Set RaBereich = Range("I7:R37, T7:V37")
ActiveSheet.Unprotect
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
With RaZelle
If .Value  "" Then
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 Then
.NumberFormat = "[h]:mm"
If Len(Target.Value) > 2 Then
InS = Left(.Value, Len(.Value) - 2)
InM = Right(.Value, 2)
Else
InS = 0
InM = .Value
End If
.Value = InS & ":" & InM
End If
End If
End With
End If
Next RaZelle
ActiveSheet.Protect , DrawingObjects:=False, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Application.EnableEvents = True
End Sub
Es erlaubt mir Stunden und Minuten mit dem Ziffernblock am PC schnell einzugeben. Das Makro setzt automatisch das Trennzeichen ":" Die Zellen haben das Nummerformat [h]:mm.
Jetzt haut das auf einem Mal nicht mehr hin. Wenn ich z.B. 900 eingebe, trägt Excel 21600:00 in die Zelle statt 9:00. In der Bearbeitungsleiste steht 19.06.1906 00:00:00.
Hat jemand eine Idee wie ich's wieder hinkriege?
Danke und Gruß
Martin

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Stunden / Minuten ohne : eingeben
21.09.2011 11:36:03
Rudi
Hallo,
zum einen funktioniert's unter XP.
Zum anderen kann man das auch besser lösen:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("I7:R37, T7:V37")
ActiveSheet.Unprotect
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
With RaZelle
If .Value  "" Then
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 Then
.NumberFormat = "[h]:mm"
.Value = Int(Target / 100) / 24 + (Target Mod 100) / 1440
End If
End If
End With
End If
Next RaZelle
ActiveSheet.Protect , DrawingObjects:=False, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Application.EnableEvents = True
End Sub

Anzeige
Danke Rudi
21.09.2011 11:48:33
Mister
mit deinem verbesserten Code funktioniert's (wieder)

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige