Ergebnis 0
#1
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
Top
#2
Hallo, :19:

Kommentare in der Datei: :21:
[attachment=22706]
Top
#3
Thumbs Up 
Hallo Case,

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

Funktioniert tadellos!!

Excelbeginner
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste