moinmoin Vinzenz,
ok, soweit verstanden
Da die Variable "Tag" nicht deklariert wurde, wird sie implizit angelegt und erhält den Standardwert 0.
verstanden. DateSerial ist damit quasi *unvollständig*... nicht gut...
Somit wird der Funktion DateSerial für Jahr der Wert 2009, für den Monat der Inhalt der Variablen "Tag", d.h. 0 und für den Tag der jeweils aktuelle Wert der Variablen "Monat", der von 305 bis 396 läuft übergeben.
auch verstanden, die For-Next-Schleife... also genauer: ich habe verstanden, dass die Schleife diese Werte übergibt, aber
Zählst Du die Tage folgender Monate zusammen:
[...]
so kommst Du auf 304 Tage.
Der 305. Tag des 0. Monat des Jahres 2009 ist somit der 1. Oktober 2009.
halt halt halt... stop... Timeout...
Wieso soll ich ab Dezember 305 nach vorne zählen? Ich kapiers immer noch nich. Wieso beginnt die Schleife bei 305?
Wie nahezu jede vernünftige Programmiersprache verwendet VBA für den ersten Monat im Jahr die 1 und für den ersten Tag im Monat ebenfalls die 1 :-)
schon klar, aber ich versteh nicht warum die Schleife bei 305 beginnt.
Als VBA-Anfänger kann ich nicht nachvollziehen, wie ich von der Aufgabenstellung Schleife vom 01.Oktober 2009 bis Jahresende auf den Startwert 305 komme?
Unbedarft wie ich bin, hätte ich einen solchen Lösungsansatz erwartet
For x gleich 01.10.2009 to 31.12.2009
erzeuge Tabellenblatt
stelle es ans Ende
benenne es um in x
Next x
oder meinetwegen sowas in der Art
nimm Tabellenspalte A und beginne in Zelle 1
solange Zelle nicht leer
erzeuge Tabellenblatt
stelle es ans Ende
benenne es um mit Inhalt der Zelle
nächste Zelle
anschliessend erstes Tabllenlatt löschen, zack fertig
Wo kommt die verschis...ähm Verzeihung... die *merkwürdige* 305 als Startzahl her... Spock würde sagen, das ist höchst unlogisch... seufz
Erstmal lieben Dank an dich Vinzenz, dass du versucht hast, mir die Gedankengänge des OP darzulegen, aber ich fürchte du bist gescheitert. Ich vergess einfach den Lösungsansatz des OP und mach es lieber *self* ... ist eh immer am besten.
Gruß Krischi