Hallo Alex und Wolfgang,
in der Hilfe zu "DateAdd" steht, dass die Variable "Datum" von Typ "Variant" sein kann, es ist also eine Datum-Integer-Zahl als auch eine Datum-Zeichenkette erlaubt. Aber Deine (Alex) Eingabe der Form 17.11.2017 ohne begrenzende " ist nicht erlaubt, denn diese Eingabe ist weder eine Zeichenkette noch eine gültige Zahl. Das nachfolgende Mini-Makro liefert sowohl für Datum-Integer-Zahl als auch Datum-Zeichenkette ein fehlerfreies Ergebnis:
Sub example_dateadd
Dim Date_1 as Variant
Dim Date_2 as Variant
Date_1 = "31.01.2004" ' Datumsformat entsprechend "Datumserkennungsmuster" in Abhängigkeit vom "Gebietsschema" angeben !
Date_2 = "31.01.2005" ' Datumsformat entsprechend "Datumserkennungsmuster" in Abhängigkeit vom "Gebietsschema" angeben !
MsgBox DateAdd("m",1,Date_1) & " - " & DateAdd("m",1,Date_2)
MsgBox DateAdd("m",1,DateValue(Date_1)) & " - " & DateAdd("m",1,DateValue(Date_2))
End Sub
Das sehe ich im Prinzip ebenso wie Du (Wolfgang). Für "DateValue" ist die Hilfe-Erläuterung etwas ausführlicher und bestätigt, was Du auch geschrieben hast:
"[...] Sie können das Gebietsschema, das in LibreOffice Basic zur Kontrolle der Formatierung von Zahlen, Daten und Währungen benutzt wird, im Menü unter Extras - Optionen... - Spracheinstellungen - Sprachen einstellen. In Basic Formatierungscodes wird immer der Dezimalpunkt (.) als Platzhalter für den Dezimaltrenner benutzt, der in Ihrem Gebietsschema definiert ist, und durch das entsprechende Zeichen ersetzt. Dies gilt entsprechend für das Gebietsschema für Datums-, Uhrzeit- und Währungsformate. Der Basic-Format-Code wird entsprechend Ihrer Gebietsschemaeinstellung ausgewertet und angezeigt. [...]"
Über [Extras] -> [Optionen] -> [Spracheinstellungen] -> [Sprachen] kann man das "Gebietsschema" einstellen und LO setzt dann automatisch das dazugehörige "Datumserkennungsmuster":
+ Gebietsschema: Englisch (USA)
+ Datumserkennungsmuster: M/D/Y;M/D
+ Date_1 = "1/31/2004" und Date_2 = "1/31/2005"
+ Gebietsschema: Englisch (Großbritannien)
+ Datumserkennungsmuster: D/M/Y;D/M;D-M
+ Date_1 = "31/1/2004" und Date_2 = "31/1/2005"
+ Gebietsschema: Afrikaans (Namibia)
+ Datumserkennungsmuster: Y/M/D;M/D
+ Date_1 = "2004/1/31" und Date_2 = "2005/1/31"
+ Gebietsschema: Bretonisch
+ Datumserkennungsmuster: D/M/Y;D/M;D.M.Y;D-M-Y
+ Date_1 = "31-01-2004" und Date_2 = "31-01-2005"
+ Gebietsschema: Deutsch (Deutschland)
+ Datumserkennungsmuster: D.M.Y;D.M.
+ Date_1 = "31.01.2004" und Date_2 = "31.01.2005"
Man muss dann nur (beispielsweise) in dem obigen Min-Makro die Datum-Zeichenkette-Angaben für "Date_1" und "Date_2" entsprechend anpassen, dann gibt es keine Fehlfunktionen von "DateAdd" mehr.
Von dieser Funktion abzuraten, so weit würde ich nicht gehen. Das Beispiel anpassen und/oder auf das "Datumserkennungsmuster" in den "Spracheinstellungen" hinweisen.
Grüße
Hans-Werner ;-))
------ Originalnachricht ------