21.11.2015, 21:07
Hallo zusammen,
die Zellformel DATEDIF macht mich wahnsinnig weil sie funktioniert bei mir nicht mehr.
Nach ausgiebiger Suche ohne Ergebnis bin ich über eine Funktion gestolpert die mir per VBA eine Datumsdifferenz berechnet.
Zell-Formel: = TestDates(H1; pDate2)
Für pDate1 habe ich einen sich nicht veränderbaren Wert aus einer Zelle.
Den zweiten Datumswert will ich aus einem benannten, veränderbaren Bereich ermitteln. Der Wert steht in der letzten nicht leeren Zelle des Bereiches und kann mit der folgenden Funktion ermittelt werden:
So weit so gut, aber wie bekomme ich jetzt den ermittelten Wert in meine Zell-Formel?
Oder gibt es eine einfachere Möglichkeit eine Datumsdifferenz zu ermitteln wobei das zweite Datum sich immer in einer anderen Zelle eines Bereichs befinden kann?
Für einen Tipp wäre ich dankbar!
die Zellformel DATEDIF macht mich wahnsinnig weil sie funktioniert bei mir nicht mehr.
Nach ausgiebiger Suche ohne Ergebnis bin ich über eine Funktion gestolpert die mir per VBA eine Datumsdifferenz berechnet.
Zell-Formel: = TestDates(H1; pDate2)
Code:
Function TestDates(pDate1 As Date, pDate2 As Date) As Long
TestDates = DateDiff("m", pDate1, pDate2)
End Function
Für pDate1 habe ich einen sich nicht veränderbaren Wert aus einer Zelle.
Den zweiten Datumswert will ich aus einem benannten, veränderbaren Bereich ermitteln. Der Wert steht in der letzten nicht leeren Zelle des Bereiches und kann mit der folgenden Funktion ermittelt werden:
Code:
Sub LetzterWertInBereich()
Run "LetzteBenutzteZelle", 1
If Not pLetzteZelle Is Nothing Then
MsgBox pLetzteZelle.Address
MsgBox pLetzteZelle.Column
Else
MsgBox "Der Bereich ist leider leer"
End If
Set pLetzteZelle = Nothing
End Sub
Function LetzteBenutzteZelle(lWSIndex As Long, Optional strColumn As String) As Range
If strColumn = vbNullString Then
With ActiveSheet.Range("Datumsraster")
Set pLetzteZelle = .Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
End With
Else
With ActiveSheet
Set pLetzteZelle = .Cells(.Rows.Count, strColumn).End(xlUp)
End With
End If
End Function
So weit so gut, aber wie bekomme ich jetzt den ermittelten Wert in meine Zell-Formel?
Oder gibt es eine einfachere Möglichkeit eine Datumsdifferenz zu ermitteln wobei das zweite Datum sich immer in einer anderen Zelle eines Bereichs befinden kann?
Für einen Tipp wäre ich dankbar!