In einem Arbeitsblatt, erstellt in Excel 2000, kann in einer Zelle die Zeit ohne ":" eingegeben werden. Der ":" wird durch folgendes Makro ersetzt:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Row <> 20 Or Target.Column <> 9 Then Exit Sub
FormatTime (Target.Address(False, False))
End Sub
Sub FormatTime(Zelle)
Dim h%, m%
With Range(Zelle)
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
If Len(.Value) > 2 Then
h = VBA.Left(.Value, Len(.Value) - 2)
m = VBA.Right(.Value, 2)
Else
h = .Value
m = 0
End If
.Value = h & ":" & m
End If
End With
End Sub
Dank Hans W. Herber läuft dieses Makro nun problemlos unter XL2000 und XL97, jedoch nur in der deutschen Version. Unter den englischen Versionen von Windows 2000 Professionell in Kombination mit Excel2000 stoppt der Compiler bei:
h = VBA.Left(.Value, Len(.Value) - 2)
mit der Meldung:
Runtime Error 13, type mismatch
kann h nicht interpretiert werden?
Ideen? Danke
Dominik