von TheCry » Fr, 03.10.2008 16:47
Ich muss mich berichtigen.
Die Zellen waren auf 00\:00 eingestellt.
Zusätzlich war noch ein Makro erstellt um den Zeitunterschied zu berechnen:
Code: Alles auswählen
Attribute VBA_ModuleType=VBAModule
Sub Modul1
Function Berechne_ZeitDiff(strVonZeit As Variant, strBisZeit As Variant) As Single
Rem '/*-------------------------------------*/
Rem '/* Diverse Variablen-Deklarationen */
Rem '/*-------------------------------------*/
Dim sngVonStunde As Single
Dim sngBisStunde As Single
Dim sngVonMinute As Single
Dim sngBisMinute As Single
Dim sngVonZeit As Single
Dim sngBisZeit As Single
Dim sngZeitDiff As Single
Dim intColonVon As Integer
Dim intColonBis As Integer
Rem '/*-------------------------------*/
Rem '/* Diverse Initialisierungen */
Rem '/*-------------------------------*/
sngZeitDiff = 0
Rem '/*--------------------------------*/
Rem '/* Leere Zellinhalte abfangen */
Rem '/*--------------------------------*/
If (IsNull(strVonZeit) Or IsEmpty(strVonZeit) Or (strVonZeit = "") Or _
IsNull(strBisZeit) Or IsEmpty(strBisZeit) Or (strBisZeit = "")) Then
Berechne_ZeitDiff = sngZeitDiff
Exit Function
End If
strVonZeit = Format(strVonZeit, "00:0#")
strBisZeit = Format(strBisZeit, "00:0#")
intColonVon = InStr(1, strVonZeit, ":")
intColonBis = InStr(1, strBisZeit, ":")
Rem '/*--------------------------------------------------------*/
Rem '/* Abbruch bei fehlerhaften Zellinhalten, wenn umfor- */
Rem '/* matierte Zeitangaben keine Doppelpunkte enthalten! */
Rem '/*--------------------------------------------------------*/
If ((intColonVon = 0) Or (intColonBis = 0)) Then
Berechne_ZeitDiff = sngZeitDiff
Exit Function
End If
Rem '/*------------------------------------*/
Rem '/* Die eigentliche Berechnung ... */
Rem '/*------------------------------------*/
sngVonStunde = Val(Mid(strVonZeit, 1, intColonVon - 1))
sngBisStunde = Val(Mid(strBisZeit, 1, intColonBis - 1))
sngVonMinute = Val(Mid(strVonZeit, intColonVon + 1))
sngBisMinute = Val(Mid(strBisZeit, intColonBis + 1))
sngVonZeit = sngVonStunde + sngVonMinute / 60
sngBisZeit = sngBisStunde + sngBisMinute / 60
Rem '/*------------------------------------*/
Rem '/* Zeitdifferenz als Rückgabewert */
Rem '/*------------------------------------*/
sngZeitDiff = sngBisZeit - sngVonZeit
Berechne_ZeitDiff = sngZeitDiff
End Function
End Sub
Nur das funktioniert nicht mehr.
Ich muss mich berichtigen.
Die Zellen waren auf 00\:00 eingestellt.
Zusätzlich war noch ein Makro erstellt um den Zeitunterschied zu berechnen:
[code]Attribute VBA_ModuleType=VBAModule
Sub Modul1
Function Berechne_ZeitDiff(strVonZeit As Variant, strBisZeit As Variant) As Single
Rem '/*-------------------------------------*/
Rem '/* Diverse Variablen-Deklarationen */
Rem '/*-------------------------------------*/
Dim sngVonStunde As Single
Dim sngBisStunde As Single
Dim sngVonMinute As Single
Dim sngBisMinute As Single
Dim sngVonZeit As Single
Dim sngBisZeit As Single
Dim sngZeitDiff As Single
Dim intColonVon As Integer
Dim intColonBis As Integer
Rem '/*-------------------------------*/
Rem '/* Diverse Initialisierungen */
Rem '/*-------------------------------*/
sngZeitDiff = 0
Rem '/*--------------------------------*/
Rem '/* Leere Zellinhalte abfangen */
Rem '/*--------------------------------*/
If (IsNull(strVonZeit) Or IsEmpty(strVonZeit) Or (strVonZeit = "") Or _
IsNull(strBisZeit) Or IsEmpty(strBisZeit) Or (strBisZeit = "")) Then
Berechne_ZeitDiff = sngZeitDiff
Exit Function
End If
strVonZeit = Format(strVonZeit, "00:0#")
strBisZeit = Format(strBisZeit, "00:0#")
intColonVon = InStr(1, strVonZeit, ":")
intColonBis = InStr(1, strBisZeit, ":")
Rem '/*--------------------------------------------------------*/
Rem '/* Abbruch bei fehlerhaften Zellinhalten, wenn umfor- */
Rem '/* matierte Zeitangaben keine Doppelpunkte enthalten! */
Rem '/*--------------------------------------------------------*/
If ((intColonVon = 0) Or (intColonBis = 0)) Then
Berechne_ZeitDiff = sngZeitDiff
Exit Function
End If
Rem '/*------------------------------------*/
Rem '/* Die eigentliche Berechnung ... */
Rem '/*------------------------------------*/
sngVonStunde = Val(Mid(strVonZeit, 1, intColonVon - 1))
sngBisStunde = Val(Mid(strBisZeit, 1, intColonBis - 1))
sngVonMinute = Val(Mid(strVonZeit, intColonVon + 1))
sngBisMinute = Val(Mid(strBisZeit, intColonBis + 1))
sngVonZeit = sngVonStunde + sngVonMinute / 60
sngBisZeit = sngBisStunde + sngBisMinute / 60
Rem '/*------------------------------------*/
Rem '/* Zeitdifferenz als Rückgabewert */
Rem '/*------------------------------------*/
sngZeitDiff = sngBisZeit - sngVonZeit
Berechne_ZeitDiff = sngZeitDiff
End Function
End Sub[/code]
Nur das funktioniert nicht mehr.