RogHB346 schrieb am 15.02.2010 09:29 Uhr:
Vielleicht hilft dir eine der beiden VBA-Functions, die ich unten
notiert habe. Beide geben einen TimeValue zur??ck. Bei Verwendung in
einer Zelle empfiehlt sich also die Formatierung [h]:mm.
VBA-Variablen oder in der Tabelle auf einzelnen Zellen anwenden.
Parameter aber einen Bereich entgegen und summiert dann alle
Arbeitszeiten in dem Bereich.
Peter
Function ArbeitszeitAusString(ByVal s As String) As Date
Static regex As Object
If regex Is Nothing Then Set regex=CreateObject("VBScript.RegExp")
regex.Pattern = "(\d{1,2}:\d{2})\s*-\s*(\d{1,2}:\d{2})"
ArbeitszeitAusString = TimeValue(regex.Replace(s, "$2")) _
- TimeValue(regex.Replace(s, "$1"))
End Function
Function ArbeitszeitAusBereich(Bereich As Range) As Date
Static regex As Object
Dim zelle As Range
If regex Is Nothing Then Set regex=CreateObject("VBScript.RegExp")
regex.Pattern = "(\d{1,2}:\d{2})\s*-\s*(\d{1,2}:\d{2})"
For Each zelle In Bereich
If regex.test(zelle.Text) Then
ArbeitszeitAusBereich = ArbeitszeitAusBereich _
+ TimeValue(regex.Replace(zelle.Text, "$2")) _
- TimeValue(regex.Replace(zelle.Text, "$1"))
End If
Next
End Function