Clever-Excel-Forum

Normale Version: Ergebnis 0
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Experten,


mit Hilfe dieses Forums habe ich eine Funktion gebaut, die mir zeigt, wieviel Tage eines Zeitraums A in einem Zeitraum B liegen. Mit der Zeile "If ((Teilanfang > Teilende) ..." möchte ich, dass die Funktion bei verkehrter Eingabe von Teilanfang/Feilende bzw. Zeitraumanfang/Zeitraumende 0 ausgibt.

Das funktioniert nicht.

Was habe ich falsch gemacht?



Code:
Public Function ZEITTEIL(Teilanfang As Single, Teilende As Single, Zeitraumanfang As Single, Zeitraumende As Single) As Single       
        If ((Teilanfang > Teilende) Or (Zeitraumanfang > Zeitraumende)) Then ZEITTEIL = 0           
        If ((Teilanfang <= Zeitraumanfang) And (Teilende <= Zeitraumanfang)) Or ((Teilanfang >= Zeitraumende) And (Teilende >= Zeitraumende)) Then
        ZEITTEIL = 0   
      
  Else 

    Dim speicher(4) As Date
    Dim i As Byte
    Dim merker As Byte
    merker = 0
    
    speicher(0) = DateDiff("d", Teilanfang, Teilende)
    speicher(1) = DateDiff("d", Teilanfang, Zeitraumende)
    speicher(2) = DateDiff("d", Zeitraumanfang, Teilende)
    speicher(3) = DateDiff("d", Zeitraumanfang, Zeitraumende)
    
    For i = 1 To 3
        If speicher(merker) > speicher(i) Then
         merker = i
        End If
    Next i
    ZEITTEIL = speicher(merker)
  End If
 
End Function

Vielen Dank im Voraus

Excelbeginner
Hallo, :19:

Kommentare in der Datei: :21:
[attachment=22706]
Hallo Case,

allerbesten Dank, auch für die Erläuterung, die es gut verständlich macht.

Funktioniert tadellos!!

Excelbeginner