Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

DataSeries/Laufzeitfehler

Forumthread: DataSeries/Laufzeitfehler

DataSeries/Laufzeitfehler
13.12.2024 14:03:03
Chris
Hallo Forum,

ich möchte in Spalte A per DataSeries fortlaufende Datumsangaben erstellen.
Das Anfangsdatum steht in A1, das Enddatum in B1:

Ich erhalte den Laufzeitfehelr 1004: Die DataSeries Methode des Range-Objektes kann nicht ausgeführt werden.
Wo liegt der Fehler?

Chris



Sub Datumsreihe

With Sheets("Tabelle1")

.range("A1").value = "01.01.2025"
.Range("B1").Value = "12.01.2025"
.Range("A1:B1").NumberFormat = "DD.MM.YYYY"

i = 1
.Range("A" & i).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _
xlDay, Step:=1, stop:=.Range("B1"), Trend:=False
i = i + 1
End With

end sub

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: als Datum übergeben
13.12.2024 14:16:10
Fennek
Hallo,

in den Zellen A1 und B1 stehen Texte, aber kein Datum:

01.01.2025 45658
12.01.2025 45669

Der 1.1. ist intern der Long-Wert 45658.


mfg
AW: DataSeries/Laufzeitfehler
13.12.2024 15:06:38
daniel
Hi
Excel und VBA reden in der Regel englisch miteinander.
daher erkennt Excel nicht, dass hier ein Datum übergeben werden soll und lässt die Eingabe so als Text stehen.

Lösungsmöglichkeiten gibt es viele.

du kannst, wenn du das Datum hart eingibst, das Datum in der englischen Form übergeben, dann erkennt Excel es:
.range("A1").value = "01/01/2025"

.Range("B1").Value = "01/12/2025"

du kannst auch die ISO-Form des Datums verwenden:
.range("A1").value = "2025-01-01"

.Range("B1").Value = "2025-01-12"

du kannst auch VBA mitgeben, dass das Datum in der deutschen Schreibweise angegeben ist (dann allerdings funktioniert der Code nur in Deutschland, bzw Ländern mit deutschem Datumsformat)
.range("A1").FormulaLocal = "01.01.2025"

.Range("B1").FormulaLocal = "12.01.2025"

in allen drei fällen sollte das nachträgliche Setzen des Zahlenformats überflüssig sein, da Excel das dann schon automatisch macht (das nachträgliche Ändern des Zahlenformats ändert auch niemals was am bereits vorhandenen Inhalt, dh dein Text bleibt Text)

oder du erzeugst das Datum im Code und übergibst es auch als Datum. Hier würde ich es so machen, da es wieder Länderunabhängig ist:
.range("A1").value = DateSerial(2025, 1, 1)

.Range("B1").Value = DateSerial(2025, 12, 1)


Gruß Daniel
Anzeige
AW: DataSeries/Laufzeitfehler
13.12.2024 15:07:32
daniel
die letzte Zeile muss anders rum:

.Range("B1").Value = DateSerial(2025, 1, 12)
AW: DataSeries/Laufzeitfehler
13.12.2024 16:35:38
Chris
ok, danke and YAL und DANIEL für die info. Gruß
AW: DataSeries/Laufzeitfehler
13.12.2024 17:55:19
Chris
In Sachen DataSeries noch eine Sache:

A1 und B1 haben Anfangs und Enddatum, bspw. 01.01.25 - 31.12.2025

In E1:E7 stehen untereinander die Tage Mo - So (E1=Mo, E2 = Di, E3= Mi usw.)
In F1:F7 stehen Zahlen getrennt durch Kommata, Bspw. 1,3,4

E1 und F1 bedeuten daher den 1. und 3. und 4. Montag

Excel soll nun im angegebenen Zeitraum vom 01.01. - 31.12.25 jeweils nur die Tage und die jeweilige Häufigkeit auflisten, wie sie in E1:F7 angegeben sind.
Steht neben einem Wochentag eine 0 bzw. nichts soll dieser Tag gänzlich unberücksichtigt gelassen werden.

Weis jmd. wie man dies löst?
Wenn einfach, stelle ich eine Beispielmappe bereit.

VG
Chris
Anzeige
AW: als Datum übergeben
13.12.2024 14:24:43
Chris
Hallo Fennek,

setzt die Zeile

.Range("A1:B1").NumberFormat = "DD.MM.YYYY"

etwas nicht das Zahlenformat auf ein Datumsformat?

Gruß
Chris
AW: als Datum übergeben
13.12.2024 14:37:25
GerdL
Moin Chris,

die beiden Zellen benötigen Long-Werte.
Sub Unit()


Range("A1") = CDate("01.01.2025")
Range("B1") = CDate("12.01.2025")

Range("A1").DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _
xlDay, Step:=1, Stop:=Range("B1").Value, Trend:=False

End Sub

Gruß Gerd
Anzeige
AW: als Datum übergeben
13.12.2024 15:21:30
Yal
Hallo Chris,

zu deiner Frage:
"
setzt die Zeile
.Range("A1:B1").NumberFormat = "DD.MM.YYYY"
etwas nicht das Zahlenformat auf ein Datumsformat?
"

Im Prinzip schon, aber nur wenn der Inhalt der Zelle schon als Datum vorliegt (Datum ist ein Ganzzahl von Typ Long)

Wenn man den Inhalt als Text ablegt
.Range("A1") = "01.01.2025"
dann liegt es zuerst als Text.
Man müsste Excel dazu zwingen, den Inhalt zu evaluieren. Dann wird es daraus ein Datum, das dann auf dem Datumformat reagieren kann. Diese Evaluierung findet bei direkter Eingabe per Hand, nicht bei Eintragung durch VBA statt.

Mit CDate("01.01.2025") setzt man direkt einen Zahl ab.

VG
Yal
Anzeige
AW: als Datum übergeben
13.12.2024 14:46:49
Chris
Hallo GerdL

danke für den Hinweis. Es funktioniert!

GRuß
Chris
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18