Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehlerhafte Ausgabe von Wert

Forumthread: Fehlerhafte Ausgabe von Wert

Fehlerhafte Ausgabe von Wert
29.11.2004 08:28:02
Wert
Ich habe im VBA eine Formel für die Dienstalterberechnung von Mitarbeitenden geschrieben. Die Formel gibt mir beim Ausführen allerdings die Meldung #WERT! aus. Kann mir jemand helfen, den Fehler zu beheben?
Hier der Code:

Function DIENSTALTER(Eintrittsdatum As Date)
'Varibeln
Dim Heute As Date
'Heutedatum in Speicher nehmen
Heute = WorksheetFunction.Date()
'Verweis zu korrekter Kalkulation
If WorksheetFunction.Month(Heute) < WorksheetFunction.Month(Eintrittsdatum) Then GoTo Kalk1 Else GoTo wenn1
wenn1:  If WorksheetFunction.Month(Heute) > WorksheetFunction.Month(Eintrittsdatum) Then GoTo Kalk2 Else GoTo wenn2
wenn2:  If WorksheetFunction.Day(Heute) < WorksheetFunction.Day(Eintrittsdatum) Then GoTo Kalk1 Else GoTo Kalk2
'Berechnung und Ausgabe des Dienstalters
Kalk1:  DIENSTALTER = WorksheetFunction.Year(Heute) - WorksheetFunction.Year(Eintrittsdatum) - 1
Kalk2:  DIENSTALTER = WorksheetFunction.Year(Heute) - WorksheetFunction.Year(Eintrittsdatum)
End Function

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlerhafte Ausgabe von Wert
Wert
Hallo Rolf,
warum so kompliziert?
Du kannnst Die entsprechenden Funktionen direkt in VBA nutzen, ohne den Umweg über die Tabellenfunktionen:

Function DIENSTALTER(Eintrittsdatum As Date)
'Varible
Dim Heute As Date
'Heutedatum in Speicher nehmen
Heute = WorksheetFunction.Date()
If Month(Heute) < Month(Eintrittsdatum) Then
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum) - 1
Else
If Month(Heute) > Month(Eintrittsdatum) Then
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum)
Else ' gleicher Monat
If Day(Heute) < Day(Eintrittsdatum) Then
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum) - 1
Else
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum)
End If
End If
End If
End Function

Gruß Harald
Anzeige
Nachtrag
Harald
Natürlich muss der Typ des Ergebnisses auchangegeben sein:

Function DIENSTALTER(Eintrittsdatum As Date) as Date ' hier Typ des Ergebnisses ergänzt
'Variable
Dim Heute As Date
'Heutedatum in Speicher nehmen
Heute = WorksheetFunction.Date()
If Month(Heute) < Month(Eintrittsdatum) Then
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum) - 1
Else
If Month(Heute) > Month(Eintrittsdatum) Then
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum)
Else ' gleicher Monat
If Day(Heute) < Day(Eintrittsdatum) Then
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum) - 1
Else
DIENSTALTER = Year(Heute) - Year(Eintrittsdatum)
End If
End If
End If
End Function

Harald
Anzeige
AW: Fehlerhafte Ausgabe von Wert
Wert
hi Rolf,
probier mal so:

Function DIENSTALTER(Eintrittsdatum As Date)
DIENSTALTER = DateDiff("yyyy", Eintrittsdatum, Date)
End Function

cu Micha
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige