28.01.2019, 19:56
(Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2019, 20:03 von WillWissen.
Bearbeitungsgrund: Codetags
)
Hallo,
ich habe eine vermutlich simple Frage, komme aber nicht drauf.
Ich habe eine Funktion definiert mit verschiedenen Parametern, die aus einer Excel-Tabelle ausgelesen werden. Die Funktion soll mir sagen, wieviel Tage z.B. vom 15.3. - 10.4. im Monat März liegen.
Wenn jetzt eine Zelle (hier Zeitraumende), in der normalerweise ein Datum stehen soll, leer ist, möchte ich, dass als Wert das heutige Tagesdatum eingesetzt wird.
Kann mir jemand helfen?
Vielen Dank schon einmal im Voraus!
Excelbeginner
ich habe eine vermutlich simple Frage, komme aber nicht drauf.
Ich habe eine Funktion definiert mit verschiedenen Parametern, die aus einer Excel-Tabelle ausgelesen werden. Die Funktion soll mir sagen, wieviel Tage z.B. vom 15.3. - 10.4. im Monat März liegen.
Wenn jetzt eine Zelle (hier Zeitraumende), in der normalerweise ein Datum stehen soll, leer ist, möchte ich, dass als Wert das heutige Tagesdatum eingesetzt wird.
Kann mir jemand helfen?
Code:
Public Function ZEITTEIL(Teilanfang As Single, Teilende As Single, Zeitraumanfang As Single, Zeitraumende As Single) As Single
[b] If Zeitraumende = "" Then Zeitraumende = Date[/b]
If ((Teilanfang <= Zeitraumanfang) And (Teilende <= Zeitraumanfang)) Or ((Teilanfang >= Zeitraumende) And (Teilende >= Zeitraumende)) Then
ZEITTEIL = 0
If ((Teilanfang > Teilende) Or (Zeitraumanfang > Zeitraumende)) Then msgbox "Fehler: Anfang ist größer als Ende!"
Else
Dim speicher(4) As Single
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
Vielen Dank schon einmal im Voraus!
Excelbeginner