Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
200to204
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
200to204
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kalenderwoche und Jahr

Kalenderwoche und Jahr
15.01.2003 11:10:33
Rolf Kersjes
Hallo,

für die monatliche Aufbereitung von Daten benötige ich einzelne Exceldateien die einer KW zugeordnet sind. Um diese dann entsprechend einzulesen war ich der Auffassung, das ist ja ganz einfach.

Ermitteln des ersten Tages des Monats, dann über das Datum ermitteln der KW mit der Formel von WF.

Ermitteln des letzten Tages des Monats und ebenfalls ermitteln der KW

Dann über eine For/Next Schleife von StartKW bis EndeKW die einzelnen Dateien entsprechend abarbeiten.

Das funktionierte auch bis zum Dezember 2002. Da ist nun mal leider die StartKW = 48 und die EndeKW = 1. Damit ich dies nun lösen kann, habe ich folgende Lösung "gebastelt".

Die Funktion KWoche von WF aus ExcelFormeln habe ich etwas angepasst. Meine Tests haben ergeben, dass das funktioniert. Oder teste ich nur was auch funktioniert?

Gibt es evtl. noch einen einfacheren, sicheren oder schnelleren Weg?

Für Anmerkungen wäre ich dankbar.

Rolf

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Kalenderwoche und Jahr
15.01.2003 11:49:21
Nepumuk
Hallo Rolf,
schau dir mal die Excelhilfe zum Befehl DatePart an. Der berechnet Kalenderwochen so wie du sie brauchst.
Gruß
Nepumuk
Ergebnis mit DatePart ist falsch ..?
15.01.2003 12:15:24
Rolf Kersjes
Hallo Nepumuk,

wenn ich die Funktion wie folgt einsetze:

bekomme ich als Ergebnis beim Startdatum 200052, richtig wäre aber 199952. Wenn ich dies für 12/2002 einsetze bekomme ich beim EndeDatum 200201, richtig ist aber 200301.

Oder mach ich hier etwas falsch?

Rolf

Re: Ergebnis mit DatePart ist falsch ..?
15.01.2003 12:52:59
Nepumuk
Hallo Rolf,
das Kreuz mit den Kalenderwochen. Die Monate 1 und 12 wirst du wohl oder übel separat abfangen müssen. D.h. Monat=1 KW vom Startdatum>1 dann Jahr-1, Monat=12 KW vom Endedatum=1 dann Jahr+1.
Gruß
Nepumuk
Anzeige
Das habe ich ja automatisch...
15.01.2003 13:36:24
Rolf Kersjes
Hallo Nepumuk,

die Berücksichtigung des Jahres habe ich ja in meiner abgewandelten Funktion JahrKWoche() bereits automatisch.
Aber ich kann dann doch keine normale Schleife nach dem Motto

For Woche = 200248 to 200301
...
next Woche

nutzen. Daher bin ich ja auf die Lösung mit dem Array gekommen.

Mir ist jedenfalls nichts besseres eingefallen, aber für andere Lösungen empfänglich.

Rolf

Re: Das habe ich ja automatisch...
15.01.2003 14:04:58
Nepumuk
Hallo Rolf,
welche Daten brauchst du eigentlich für dein Programm? Nur die Kalenderwochen des betreffenden Monats oder die Jahreszahl*100 & Kalenderwoche?
Gruß
Nepumuk
Eigentlich beides...
15.01.2003 14:15:33
Rolf Kersjes
Hallo Nepumuk,

die Dateien stehen in einem Jahresverzeichnis z.B.

...Daten\Jahr2002\....

Die Namen der Dateien sind wie folgt aufgebaut:

48KW02VerbrauchsDaten.xls

48 steht für die KW, 02 für das Jahr 2002. D.h. um die richtigen Dateien in den richtigen Verzeichnissen zu finden, benötige ich beide Angaben.

Rolf

Anzeige
Re: Eigentlich beides...
15.01.2003 14:44:02
Nepumuk
Hallo Rolf,
sch.... Kalenderwochen. War eine schwere geburt, aber jetzt hab ich's.

Gruß
Nepumuk
Leider ....
15.01.2003 15:02:21
Rolf Kersjes
Hallo Nepumuk,

danke für Deine Mühe, aber das Ergebnis Deiner Prozedur ist leider falsch, liefert als StartKw 52KW00, müsste aber 52KW99 liefern. Konnte den Bug aber auf die schnelle so auch nicht finden. Dürfte aber nur noch ne Kleinigkeit sein.

Aber ansonsten ein interessanter Ansatz, die Funktionen DateDiff und DatePart kannte ich bisher nicht. So lernt man immer wieder dazu.

Rolf

Re: Leider ....
15.01.2003 15:08:57
HanZ
Hallo zusammen,

was würde gegen den einzelligen Befehl
>> Format(Date, "ww", vbMonday, vbFirstFourDays) <<
sprechen ? OK Das Ergebnis ist ein String, kann aber umgewandelt werden ?!!!!!!

Gruß
HanZ

Anzeige
Re: Leider ....
15.01.2003 15:12:41
Nepumuk
Hallo Rolf,
ich sgte doch ........
So müsste es aber nun wirklich stimmen:

Gruß
Nepumuk
Hhhhmmmff...
15.01.2003 15:13:20
Rolf Kersjes
Hallo Hanz,

wo soll das eingesetzt werden und welches Problem wird beseitigt?

Rolf

Zurück zur Anfangsfrage...
15.01.2003 15:35:39
Rolf Kersjes
Hallo Nepumuk,

jau, jetzt funktioniert es. Nochmals Danke für Deine Mühe.

Jetzt aber mal zurück zu meiner Anfangsfrage:

Gibt es evtl. noch einen einfacheren, sicheren oder schnelleren Weg?

Wenn ich Deinen Vorschlag um die ein Array (statt MsgBox) ergänze, bin ich von der Komplexität ähnlich der ersten Lösung.

Wir können also die Diskussion hier beruhigt abschliessen. Oder sieht Du das anders? Oder gibt es evtl. weitere Unterschiede?

Rolf

Anzeige
Re: Zurück zur Anfangsfrage...
15.01.2003 15:49:34
Nepumuk
Hallo Rolf,
eigentlich dacht ich statt der MsgBox die ich zu Testzwecken eingerichtet habe kommt nun dein Code. Du hast die richtige Jahreszahl für den Pfad und den richtigen Dateinamen zum öffnen der Datei vorliegen was brauchst du mehr? Das das ganze ein bisschen komplex aussieht, spielt, wenn es läuft doch gar keine Rolle und ist doch eher auf die komplexität des Zusammenhanges von Jahreszahl, Monat und Kalenderwoche zurückzuführen. Hautsache ist doch, dass es die richtigen Zahlen liefert.
Gruß
Nepumuk

Re: Zurück zur Anfangsfrage...
15.01.2003 15:57:52
Rolf Kersjes
Hallo Nepumuk,

wie Du schon selbst sagst, Hauptsache es funktioniert, und das tun beide Varianten. Ansonsten noch einmal Danke für die Diskussion.

Rolf

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige