Kann man in Excel automatisch ein Datum eintragen, wenn der Monat vorgegeben ist und das nur für Montag-Freitag ?

3 Antworten

Ich hoffe ich habe die Frage richtig verstanden: Tabelle1 stellt die erste Woche des Monats dar, entsprechend Tabelle 2 die zweite Woche etc.

Also mit Formeln würde ich mir die Finger dabei brechen, geht vielleicht auch irgendwie. Mit VBA wäre es so denkbar:

Sub datumsetzen()
Dim tag As Integer
Dim wochentag As Integer
tag = 1
wochentag = Weekday(Tabelle1.Cells(1, 1).Value, vbMonday)
If wochentag = 6 Then
tag = 3
wochentag = 1
End If
If wochentag = 7 Then
tag = 2
wochentag = 1
End If

While wochentag < 6
Tabelle1.Cells(3, wochentag).Value = tag
tag = tag + 1
wochentag = wochentag + 1
Wend
wochentag = 1
tag = tag + 2

While wochentag < 6
Tabelle2.Cells(3, wochentag).Value = tag
tag = tag + 1
wochentag = wochentag + 1
Wend
wochentag = 1
tag = tag + 2

While wochentag < 6
Tabelle3.Cells(3, wochentag).Value = tag
tag = tag + 1
wochentag = wochentag + 1
Wend
wochentag = 1
tag = tag + 2

While wochentag < 6
Tabelle4.Cells(3, wochentag).Value = tag
tag = tag + 1
wochentag = wochentag + 1
If tag > Day(DateSerial(Year(tag), Month(tag) + 1, 0)) Then Exit Sub
Wend
wochentag = 1
tag = tag + 2

While wochentag < 6
Tabelle5.Cells(3, wochentag).Value = tag
tag = tag + 1
wochentag = wochentag + 1
If tag > Day(DateSerial(Year(tag), Month(tag) + 1, 0)) Then Exit Sub
Wend

End Sub

Annahme hier: Du hat in Tabelle 1 A1 den Monat stehen (August 2015)

Die Schleifen je Tabellenblatt könnte man noch eleganter lösen.

So, die Lösung über Formeln hat mich gereizt, ist aber eine ziemliche Schlacht

Tabellenblatt 1 hat die meisten Sonderfälle abzudecken:
Ich gehe davon aus, dass Du den Monat wieder in A1 stehen hast
Spalte A =WENN(WOCHENTAG($A$1;2)=3;1;WENN(WOCHENTAG($A$1;2)=6;3;WENN(WOCHENTAG($A$1;2)=7;2;"")))
Spalte B =WENN(WOCHENTAG($A$1;2)=2;1;WENN(UND(ISTZAHL(A5);A5>0);A5+1;""))
Spalte C =WENN(WOCHENTAG($A$1;2)=3;1;WENN(UND(ISTZAHL(B5);B5>0);B5+1;""))
Spalte D =WENN(WOCHENTAG($A$1;2)=4;1;WENN(UND(ISTZAHL(C5);C5>0);C5+1;""))

Spalte E =WENN(WOCHENTAG($A$1;2)=5;1;WENN(UND(ISTZAHL(D5);D5>0);D5+1;""))

  1. Tabellenblatt 2 bis 5:Spalte A: =WENN(E5="";"";WENN(E5+3<TAG(MONATSENDE($A$1;0));E5+3;""))Spalte B: =WENN(A8="";"";WENN(A8+1<TAG(MONATSENDE($A$1;0));A8+1;""))

Spalte B kannst Du dann rüberziehen bis E.  Mit den zusätzlichen Prüfungen wird sichergestellt, dass es nicht mehr Tage gibt als der Monat hat.

Ich habe das zum Testen in einem einzigen Tabellenblatt untereinander gemacht. Wenn Du verschiedene Tabellenblätter verwendest, musst Du die Formel in der Spalte A jeweils anpassen.

schau mal, ob Dir der Kommentar in meiner AW zu dieser Frage eine Anregung gibt:

www.gutefrage.net/frage/halloich-habe-fuer-jeden-monat-eine-registerkarte-wie-geht-es-das-ich-nur-den-tag-1-eingebe-und-autom-der-monat-dazu-kommt-0112-

Für Wochen müsstest Du innerhalb der Formel, noch einen Faktor einfügen.

Ansonsten solltest du angeben, ob Du jedem Tag eine Zeile zuweist (so wie in meiner AW) oder eine Spalte und wo der Beginn sein soll.

Soll die Woche So (am System und früher eorop.) oder Mo(europ.) beginnen?

zB ist die PrüfungsFormel für den 1. So im Monat:

=(Rest("4.Okt.15";7)=1)*(Tag("4.1015")<Tag("4.10.15"-7))

oder

der vorhergehende Samstag ist immer =GANZZAHL(HEUTE()/7)*7

auf ihn kann man sich zB beziehen wenn man anstatt heute() auf ein beliebiges Datum verweist. Mit +1 = So oder -1 =Fr , um weitere Möglichkeiten zu beschreiben.

nur mal als Einstimmung.

(dieser arg verschlimmbesserte Editor erlaubt kein Einfügen von Formeln/Texten, die ein < enthalten, schreiben kann man es!)