welchen code brauche ich um auf einem tabellenblatt z. B. in Spalte A 1212 einzugeben, um dann 12:12 zu erhalten und in Spalte B 121207, um 12.12.2007 zu erhalten.
Grüße
Michael
und für die uhrzeit:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
Dim RaBereich As Range ' Bereich der Wirksamkeit
Dim RaZelle As Range ' zur Zeit untersuchte Zelle
Dim InS As Integer ' Variable für Stunde
Dim InM As Integer ' Variable für Minute
Dim InSe As Integer ' Variable für Sekunde
Set RaBereich = Range("D4:E10, H4:H10") ' Bereich der Wirksamkeit festlegem
' noch mehr Bereiche
' Set RaBereich = Union(Range("C7:I26"), Range("L7:R26"), Range("U7:AA26"), Range("AD7:AJ26") _
)
' ActiveSheet.Unprotect "Password" ' Schutz der Tabelle aufheben
Application.EnableEvents = False ' Reaktion auf Zellveränderung abschalten
For Each RaZelle In Range(Target.Address) ' Schleife falls mehr als eine Zelle mit einmal _
verändert
If Not Intersect(RaZelle, RaBereich) Is Nothing Then ' Zelle ist im Bereich der _
Wirksamkeit
With RaZelle
If .Value "" Then
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 Then
If Len(Target.Value) > 4 Then ' es wurden Stunden eingeben
InS = Left(.Value, Len(.Value) - 4)
InM = Mid(.Value, Len(.Value) - 3, 2)
InSe = Right(.Value, 2)
ElseIf Len(Target.Value) > 2 Then ' es wurden keine Stunden _
eingegeben
InS = 0
InM = Left(.Value, Len(.Value) - 2)
InSe = Right(.Value, 2)
Else ' es wurden nur Sekunden _
eingegeben
InS = 0
InM = 0
InSe = .Value
End If
.NumberFormat = "[h]:mm:ss" ' Zellformat setzen
.Value = InS & ":" & InM & ":" & InSe ' Zeit in Zelle schreiben
End If
End If
End With
End If
Next RaZelle
' ActiveSheet.protect "Password" ' Schutz der Tabelle aufheben
Application.EnableEvents = True ' Reaktion auf Zellveränderung einschalten
End Sub
kann man die beiden codes ganz einfach nicht in eine anweisung zusammenfassen?
vielen dank für einen tipp. ansonsten sind die codes ja super.