AW: Problem mit Zellformat
02.09.2003 11:20:59
Hajo_Zi
Hallo Steffi
der Code gehört in jede Tabelle wo Du Zeiten nach der Art eingeben willst. Den Bereich mußt Du für jede einzelen Tabelle anpassen. Für Gesamt (Zeit) ist es folgender Code
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
' erstellt von Hajo.Ziplies@web.de 02.09.03
' http://home.media-n.de/ziplies/
Dim RaBereich As Range, RaZelle As Range
Dim InS As Integer ' Variable für Stunden
Dim ByM As Byte ' Variable für Minuten
Dim BySe As Byte ' Variable für Sekunden
Dim ByZe As Byte ' Variable für Zehntel
Application.EnableEvents = False
' Bereich der Wirksamkeit
Set RaBereich = Range("E10:J21")
' ActiveSheet.Unprotect
For Each RaZelle In Range(Target.Address)
' überprüfen ob Zelle im vorgegebenen Bereich
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
If RaZelle <> "" Then
With Cells(RaZelle.Row, RaZelle.Column)
If IsNumeric(RaZelle.Value) Then
Select Case Len(RaZelle.Value)
Case 1
ByZe = RaZelle.Value
BySe = 0
ByM = 0
InS = 0
Case Is < 4
ByZe = Right(RaZelle, 1)
BySe = Mid(RaZelle.Value, 1, Len(RaZelle.Value) - 1)
ByM = 0
InS = 0
Case Is < 6
ByZe = Right(RaZelle, 1)
BySe = Mid(RaZelle, Len(RaZelle) - 2, 2)
ByM = Mid(RaZelle, 1, Len(RaZelle) - 3)
InS = 0
Case Is < 8
ByZe = Right(RaZelle, 1)
BySe = Mid(RaZelle, Len(RaZelle) - 2, 2)
ByM = Mid(RaZelle, Len(RaZelle) - 4, 2)
InS = Mid(RaZelle, 1, Len(RaZelle) - 5)
Case Else
MsgBox "Falsche eingabe"
End Select
.Value = InS & ":" & ByM & ":" & BySe & "." & ByZe
.NumberFormat = "[hh]:mm:ss.0"
End If
End With
End If
End If
Next RaZelle
Set RaBereich = Nothing
' ActiveSheet.Protect
Application.EnableEvents = True
End Sub
Gruß hajo