Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel VBA Userform - Kurswochen berechnen

31 views
Skip to first unread message

Wolf-...@hotmail.de

unread,
Mar 28, 2018, 8:01:08 AM3/28/18
to
Hallo,

ich habe gerade ein Projekt am laufen und komme mit der "WEEKDAY" Funktion nicht ganz zurecht, vielleicht habe ich auch nur ein Tunnelblick oder Denkfehler an die Herangehensweise:

Meine Userform ermöglicht es Teilnehmer (Spalte A - Name, Spalte B - Vorname) in eine Excel Tabelle einem bestimmten Sitzplatz(Spalte - C) zuzuweisen.

Die Teilnehmer absolvieren Kurse. Die Kurse werden über die Userform mittels Dropdowns aufgelistet. Ein Kurs, zwei Kurse, drei Kurse - es ist egal, wie viele Kurse für Teilnehmer eingeplant werden.

Jeder Kurs hat eine bestimmte Dauer die da wären :

-1 Woche
-2 Wochen
-4 Wochen
-8 Wochen
-12 Wochen
-16 Wochen
-20 Wochen
-24 Wochen

Wir haben festgelegte Termine bei dem die Kurse Starten, z.B. für 2018 :

-02.01.2018
-29.01.2018
-26.02.2018
-26.03.2018
-23.04.2018
-22.05.2018
-22.05.2018
-18.06.2018
-16.07.2018
-13.08.2018
-10.09.2018
-08.10.2018
-05.11.2018
-03.12.2018

Der letzte Kurstag ist immer der letzte Tag in der letzten Woche. Z.B ein Teilnehmer mit einem 4-Wochen Kurs, Starttermin/Kursanfang 26.03.2018, Kursende 20.04.2018.

Es müssen alle Feiertage in ganz Deutschland berücksichtigt werden:

01.01.2018 Neujahr
06.01.2018 Heilige Drei Könige
30.03.2018 Karfreitag
01.04.2018 Ostersonntag
02.04.2018 Ostermontag
01.05.2018 Tag der Arbeit
10.05.2018 Christi Himmelfahrt
20.05.2018 Pfingstsonntag
21.05.2018 Pfingsmontag
31.05.2018 Fronleichnam
15.08.2018 Mariä Himmelfahrt
03.10.2018 Tag der Deutschen Einheit
31.10.2018 Reformationstag
01.11.2018 Allerheiligen
21.11.2018 Buß-und Bettag
25.12.2018 1. Weihnachtstag
26.12.2018 2.Weihnachtstag


Ich habe jedem Kurs die jeweilige Kursdauer zugewiesen die ich über eine Textbox in der Userform darstellen lasse.

Nun soll in der Excel Tabelle der Kursstart(Spalte - D) und das Kursende(Spalte - E) eines einzelnen Kurses übertragen werden. Ich hatte überlegt Worksheets für die jeweiligen Startterminen zu erstellen. Somit wäre die Zuordnung pro Kurs und Kursstart in das jeweilige Worksheet einfacher.

Wie muss der Code aussehen, damit Kurstart und Kursende korrekt ausgerechnet werden, unter all den Vorraussetzungen ?


Vielen Dank für die aufgebrachte Zeit zum lesen und vielleicht ein Lösungsansatz !

Grüße

Philip

Claus Busch

unread,
Mar 28, 2018, 8:45:38 AM3/28/18
to
Hallo,

Am Wed, 28 Mar 2018 05:01:05 -0700 (PDT) schrieb Wolf-...@hotmail.de:

> Der letzte Kurstag ist immer der letzte Tag in der letzten Woche. Z.B ein Teilnehmer mit einem 4-Wochen Kurs, Starttermin/Kursanfang 26.03.2018, Kursende 20.04.2018.

dein Kursstart ist wie beschrieben doch festgelegt.
Berechne den darauffolgenden Freitag und zähle dann (Dauer - 1 Woche) *
7 dazu und subtrahiere eventuell einen Tag, wenn der Freitag auf einen
Feiertag fällt.
Angenommen, du hast den Bereich mit den Feiertagen mit "Feiertage"
benamt, dann für das Startdatum in D1 und einer Kursdauer von 4 Wochen:

=D1+WAHL(WOCHENTAG(D1;2);4;3)+21-(ZÄHLENWENN(Feiertage;D1+WAHL(WOCHENTAG(D1;2);4;3)+21)>0)


Mit freundlichen Grüßen
Claus
--
Windows10
Office 2016

Wolf-...@hotmail.de

unread,
Mar 29, 2018, 2:36:50 AM3/29/18
to
Am Mittwoch, 28. März 2018 14:45:38 UTC+2 schrieb Claus Busch:

> Angenommen, du hast den Bereich mit den Feiertagen mit "Feiertage"
> benamt, dann für das Startdatum in D1 und einer Kursdauer von 4 Wochen:
>
> =D1+WAHL(WOCHENTAG(D1;2);4;3)+21-(ZÄHLENWENN(Feiertage;D1+WAHL(WOCHENTAG(D1;2);4;3)+21)>0)


Hallo Claus, danke für deine Rasche Antwort ! Bei Gelegenheit probiere ich das aus , ich werde mich wieder melden !


Viele Grüße und schöne Ostern

Philip

Xudi

unread,
Aug 2, 2018, 6:29:28 AM8/2/18
to
Am Mittwoch, 28. März 2018 14:45:38 UTC+2 schrieb Claus Busch:
> Hallo,
Hallo Claus,

nochmals danke für die Lösung ! Ich dachte, ich hätte mich schon bedankt, aber dem scheint leider nicht so.



Weswegen ich das Thema nochmal auskramen muss :

Im Dezember diesen Jahres sind es aufgrund der Ferientage 5 Wochen Kursdauer. Wie kann man diese Bedingung in deinem Code einbauen ?

Liebe Grüße

Philip
0 new messages