Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige