Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
700to704
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
700to704
700to704
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

1904-Problem bei eigener Funktion

1904-Problem bei eigener Funktion
02.12.2005 10:46:04
Roger
Moin,
bin gerade über folgende Problematik gestolpert:
Meine Funktionen erkennen, ob das 1904-Datumsmodell eingestellt ist, oder nicht. Damit kann ich die Ausgaben entsprechend um 1462 Tage anpassen, wenn nötig.
Wenn die Funktion einen Wert aus einem Zellbezug bekommt, ist auch alles in Ordnung. Stammt dieser aus einer Eingabe, dann bekommt sie den Wert OHNE 1904-Konvertierung.
Funktion:

Function Monatserster(ByVal Datum As Date) As Date
If Datum = TimeSerial(0, 0, 0) Then Exit Function
Monatserster = DateSerial(Year(Datum), Month(Datum), 1) + cAdj1904 * ActiveWorkbook.Date1904
End Function

Beispiel:
A1 enthält das Datum '08.11.2004'
Monatserster(A1) liefert '01.11.2004' in beiden Datumsmodellen.
MonatsErster(DATWERT("08.11.2004")) liefert mit 1904 '01.11.2000', sonst das richtige Ergebnis.
Wie kann ich in der Funktion erkennen, woher der Wert stammt?
Diese Funktion ist nur ein handliches Beispiel, ich weiß, dass es auch ohne VBA gemacht werden könnte. Das Problem wird richtig ernst, wenn eine Funktion zwei Datumswerte benötigt und der eine aus einem Zellbezug stammt und der andere aus einer Eingabe wie 'DATWERT("01.01.2004")'. Innerhalb der Funktion muss ich dann nur den einen um 1462 Tage anpassen.
Ich hoffe mal, damit kann jemand was anfangen und mir die Augen öffnen. 8)
Danke schon einmal fürs Lesen,
RogeR.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 1904-Problem bei eigener Funktion
03.12.2005 02:11:05
Luc:-?
Hallo Roger,
wie wär's mit einer EventProcedure, die auf Input reagiert und in einer Variablen InputTarget und was du sonst noch so zur Identifikation dieses Wertes benötigst festhält?
Gruß Luc :-?
AW: 1904-Problem bei eigener Funktion
05.12.2005 11:13:12
Roger
Problem gelöst.
Ich habe es zwar nicht mit einer entsprechenden Prozedur gemacht, aber durch deinen Tip kam ich auf die Idee, die ankommenden Datenwerte genauer zu betrachten:
Datumsangaben aus einer Zelle kommen als Date an, aus Datumswerte aus Funktionen als Zahl. Da reicht eine schlichte Trennung nach Datentyp, die ich über ein simples
If Not IsDate(Datum) Then Datum = Datum - cAdj1904 * ActiveWorkbook.Date1904
gelöst habe.
Jetzt rechnet er nich nur in beiden Einstellungen gleich, sondern auch richtig.
Danke für den Fingerzeig!
RogeR.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige