Datum ändern

Hallo,

wir haben eine Tabelle, die wochenweise Mo - Fr unterteilt ist. Immer 2 Wochen auf einer Seite, dient als Dienstplan. Jährliche Anpassung notwendig.
Da das Datum jedes Jahr um einen Tag weiterspringt(aus Montag dem 8.1. wird Montag der 9.1.), muß ich am Ende des Jahres immer einzeln jeden Tag von Hand ändern. Meine Frage:
Gibt es einen Befehl oder ähnliches mit dem ich mir diese Fummelarbeit sparen kann. So daß Excel das Datum automatisch immer um einen Tag verändert.
Danke im Voraus und fröhliche Weihnachten an alle

Hallo,
schreibe in eine Zelle [A1] das eingestellte Jahr

In der Zelle wo der 1. Montag des Jahres steht schreibst du folgende Formel:
=DATUM(A1;1;7)-WOCHENTAG(DATUM(A1;1;7);3)

Angenommen die Formel steht in A3 dann schreibe in A4
=a3+1
und kopiere die Formel so weit runter wie du sie brauchst

Gruß Holger

Kleine Korrektur, sorry

Ein mal im Jahr das Datum ändern geht auch „zu Fuß“ ganz einfach wenn ein Datum in den Zellen steht.

Dann brauchst du nur 364 / 371 Tage dazu addieren. [52 / 53 Wochen]
> Schreibe 364 in eine leere Zelle,
> wähle kopieren
> Markiere alle Zellen mit einem Datum
> Rechtsklick >Inhalte einfügen > Vorgang >addieren

Solltest du dich versehen haben kannst du auf gleicher Weise natürlich weitere 7Tage addieren oder wieder abziehen

Gruß Holger

dynamischer Jahreswochenkalender

wir haben eine Tabelle, die wochenweise Mo - Fr unterteilt
ist. Immer 2 Wochen auf einer Seite, dient als Dienstplan.
Jährliche Anpassung notwendig.

Hallo Holger,

angenommen das Blatt für KW1 und KW2 für 2010 sähe so aus

Tabellenblatt: [Mappe21]!KW1\_2
 │ A │ B │ C │ D │ E │
───┼────────────────┼───────┼───┼───┼───┤
 1 │ │ 2010 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 2 │ KW 1 --- KW 2 │ │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 3 │ │ │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 4 │ WT │ Tag │ x │ y │ z │
───┼────────────────┼───────┼───┼───┼───┤
 5 │ Mo │ 04.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 6 │ Di │ 05.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 7 │ Mi │ 06.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 8 │ Do │ 07.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
 9 │ Fr │ 08.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
10 │ │ │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
11 │ Mo │ 11.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
12 │ Di │ 12.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
13 │ Mi │ 13.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
14 │ Do │ 14.01 │ │ │ │
───┼────────────────┼───────┼───┼───┼───┤
15 │ Fr │ 15.01 │ │ │ │
───┴────────────────┴───────┴───┴───┴───┘
Benutzte Formeln:
A2 : ="KW "&KW&" --- KW "&KW+1
A5 : =B5
A6 : =B5+1
A7 : =B6+1
A8 : =B7+1
A9 : =B8+1
A11: **=B9+3**
A12: =B11+1
A13: =B12+1
A14: =B13+1
A15: =B14+1
B5 : =DATUM(B1;1;7)-WOCHENTAG(DATUM(B1;1;7);3)
B6 : =A6
B7 : =A7
B8 : =A8
B9 : =A9
B11: =A11
B12: =A12
B13: =A13
B14: =A14
B15: =A15

Festgelegte Namen:
KW: =KÜRZEN((!$B$5-WOCHENTAG(KW1\_2!IU5;2)-DATUM(JAHR(!$B$5+4-WOCHENTAG(!$B$5;2));1;-10))/7) \*rel. Name, so gültig in A2

Zahlenformate der Zellen im gewählten Bereich:
A1:A4,B1:B4,C1:C15,D1:smiley:15,E1:E15
haben das Zahlenformat: Standard
A5:A15
haben das Zahlenformat: TTT
B5:B15
haben das Zahlenformat: TT.MM

Tabellendarstellung erreicht mit dem Code in FAQ:2363

dann aktiviere dieses Blatt, benne es um in
KW1_2
dann lasse nachfolgendes Makro laufen.
Es erzeugt eine neue Mappe aufgrund dieses Blattes mit allen Blättern.
Pro Blatt sind B1 und B5 die entscheidenen Zellen, alles andere bezieht sich darauf.

Festgelegte Name bezieht sich auf Einfügen—Namen

Und, diese neue Mappe ist pro Jahr dynamisch, d.h. du mußt nur noch einmalig in KW1_2!B1 die neue Jahreszahl eintragen.
Alle Bätter passen sich dann automatisch an.
Eine evtl. 53te KW habe ich erstmal weggelassen, sag bescheid, wenn die mit rein soll.

Zum Makro. Alt+F11, Einfügen—Modul, Code reinkopieren, VB-Editor schließen.
Aufruf in Excel: Alt+F8 und

Sub Jahresplan()
Dim N As Integer, a
Sheets("KW1\_2").Copy
ActiveSheet.Range("B1") = ActiveSheet.Range("B1") + 1
For N = 1 To 25
 Sheets("KW1\_2").Copy After:=Sheets(Sheets.Count)
 ActiveSheet.Name = "KW" & 2 \* N + 1 & "\_" & 2 \* N + 2
 Worksheets(N + 1).Range("B5").FormulaLocal = "=" & Worksheets(N).Name & "!B5 + 14"
 Worksheets(N + 1).Range("B1").FormulaLocal = "=" & Worksheets(N).Name & "!B1"
 Worksheets(N + 1).Range("A2").Calculate
Next N
Worksheets(1).Select
End Sub

Gruß
Reinhard