Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Arbeitstage automatisch eintragen

Forumthread: Arbeitstage automatisch eintragen

Arbeitstage automatisch eintragen
19.04.2025 05:40:03
NicoHendrik
Hallo alle zusammen,

Ich habe mit eurer Hilfe eine Abwesenheit Tabelle erstellt die so sehr gut funktioniert.
Nun hätte ich gerne das der Button Arbeit (Grün) nicht betätigt werden muss, also Überflüssig ist. Jetzt schreibe ich den Wert 5 in den Zellen und zähle die Arbeitstage.

Jetzt hätte ich gerne, dass der Wert 5 immer automatisch, wenn die Zellen leer sind eingetragen wird, da ich die wirkliche Arbeitstage zählen möchte.
Gruss Nico

https://www.herber.de/bbs/user/177094.xlsm
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitstage automatisch eintragen
19.04.2025 07:04:37
NicoHendrik
Zu meine Anfrage habe ich vergessen zu erwähnen, das dies vor K5 bis NL57 gelten soll unter Berücksichtigung der freien Tage.
AW: Arbeitstage automatisch eintragen
19.04.2025 13:45:32
Oberschlumpf
Hi,

ich wollt gerad mal mein Glück mit ner Lösung versuchen, hab aber zu meinem Glück noch mal deine 2. Meldung gelesen, und...

Bitte was meinst du mit "...das dies vor K5 bis NL57 gelten soll..."?
vor K5 bedeutet für mich: alle Spalten A bis J = weil eben diese Spalten VOR K sind

Und dann noch:
Wieso soll alles ab Zeile 5 gelten?
In Zeile 5 stehen doch die Tagesnamen im Format TT; wieso sollen auch da automatisch der Wert 5 für "arbeiten" eingetragen werden?

Ciao
Thorsten
Anzeige
AW: Arbeitstage automatisch eintragen
19.04.2025 15:38:50
NicoHendrik
Sorry, weshalb ich so was Dummes geschrieben hab? Kann ich nicht erklären.

Es soll heißen K8 bis NL57
AW: Arbeitstage automatisch eintragen
20.04.2025 09:38:29
Oberschlumpf
Hi,

hier, versuch mal:
https://www.herber.de/bbs/user/177109.xlsm

Mein Code im Worksheet-Change-Ereignis überwacht die Spalte C

01. Trag in C9 (oder andere Zelle in C ) einen Namen ein

02. Als erstes wird in allen Zellen K9 bis NL9 die von dir gewünschte 5 automatisch eingetragen (hier ist also dein Ziel schon erreicht; du benötigst den Button "Arbeiten" nicht mehr)
Das erkennst du daran, weil für ca 1 Sekunde die ganze Datenzeile grün erscheint

03. Feiertage erkennen
Der Zellbereich "K9:NL9" wird an ein Array (larYear) übergeben (Array = eine einzige Variable, die nicht nur 1 sondern viele, unterschiedliche Werte enthalten kann = in deinem Fall sind es 366 Einträge, weil das gesamte Jahr)
Auch der Bereich Feiertage "AU63:AU73" wird an ein Array (larHoliday) übergeben

Jetzt werden im Array larYear alle Einträge durchsucht nach allen Einträgen aus dem Array larHoliday.
Sobald ein Eintrag aus larHoliday in larYear gefunden wurde, z Bsp 01.01.2025, dann wird in der Datenzeile in der richtigen Zelle, hier Zelle K8, die 5 wieder gelöscht = die Zelle K8 ist nicht mehr grün, sondern hellbraun (Farbe für Feiertage)

Hinweis:
Ich setze deshalb Arrays ein, weil die Verarbeitung/Überwachung/Verändern von Arrays sehr viel schneller funktioniert, als wenn ich direkt auf jede einzelne Zelle meinen Code ausgeführt hätte

04. Die Tage finden, die für "Welche 2 Tage arbeitest du nicht?" angegeben sind; in deiner Bsp-Datei sind das Samstag + Sonntag
Jetzt wird im Array larYear mit Hilfe der Zeile 6 (hier stehen immer wieder die Tageszahlen vom 1. bis zum letzten jeden Monats) jeder Eintrag geprüft, ob es sich um einen der 2 freien Tage handelt.

Von jedem gefundenen freien Tag merkt sich mein Code erst mal die jeweilige Zelladresse, z Bsp N6,N7 und U6,V6 usw...
Alle gefundenen Zelladressen werden nun in 10er-Blöcke aufgeteilt, z Bsp "N6,N7,U6,V6...AP8,AQ8" - und so wird in einem Rutsch immer wieder aus 10 Zellen der Wert 5 gelöscht = diese Zellen sind nun auch nicht mehr grün, sondern hellgelb (Farbe für freie Tage)

Hinweis:
Das Löschen von Inhalten eines Zellbereichs wird viel schneller ausgeführt, als wenn mein Code den Inhalt jeder einzelnen Zellen nacheinander gelöscht hätte.
Es ist aber nicht möglich, alle Zellen, die Sa oder So sind, in einem Rutsch zu löschen, weil das zu viele Einträge sind = deswegen hab ich das in 10er-Blöcke aufgeteilt.

So, hier ist die grundsätzliche Erklärung von dem, was ich für dich versucht habe, zu ende

Was ich in deiner Datei nicht verstehe, bzw anders machen würde:
Du hast die Feiertage "irgendwohin" ins Blatt "Mitarbeiter 1" geschrieben, UND du hast diese Zeilen auch noch ausgeblendet!
Ich würde die Feiertage, und nur die Feiertage, in ein eigenes Blatt schreiben, weil die strukturmäßig im Blatt "Mitarbeiter 1" nix verloren haben.

Du hast extra 2 Zellen definiert, in denen du auswählen kannst, welche 2 Tage frei sein sollen = grundsätzlich ne gute Idee!, aber...
Egal, welche Tage ich als 2 freie Tage auswähle: In deiner Bsp-Datei bleiben - immer - Sa+So als freie Tage markiert.
Verstehe ich nicht, aber ok, vllt hast du den dafür notwendigen Code nur in deiner Originaldatei, weil er ja in der Bsp-Datei nicht ganz so wichtig ist...

Auf jeden Fall aber hab ich in Modul3 eine Funktion geschrieben, die die freien Tage aus den Zellen H2 und H3 bestimmt.
Wählst du also in meiner Datei als freie Tage z Bsp Mo + Mi aus, dann würden nach Eintrag eines Namens in Spalte C auch alle 5en aus den Zellen gelöscht werden, die Montag oder Mittwoch sind.

Konnte ich helfen?

Ciao
Thorsten
Anzeige
AW: Arbeitstage automatisch eintragen
20.04.2025 10:25:59
NicoHendrik
Vielen Dank Thorsten,

das klappt jetzt so wie ich es mir wünsche.

Schönen Ostersonntag noch

Gruß Nico
AW: Arbeitstage automatisch eintragen
19.04.2025 14:07:02
Eifeljoi 5
Hallo

In meinen Augen ist für dieses Konzept eine ganz falsche Struktur.
Ich würde das Datum nicht in Spalten sondern in Zeilen machen, und zum anderen verbundene Zellen ist ein no go!
Anzeige
AW: Arbeitstage automatisch eintragen
19.04.2025 14:16:24
Oberschlumpf
Hi,

ob ich "deinem" Spalten/Zeilenwechsel zustimme, weiß ich noch nicht, aber grundsätzlich finde auch ich, dass man in der Datei ganz viel besser machen könnte.

(und noch ein) Aber:
Nico meint ja, dass die Datei bis jetzt - für seine Ansprüche - sehr gut funktioniert; er möchte jetzt halt erst mal 1 Verbesserung - und ich wart mal auf seine Antwort(en).

Ciao
Thorsten
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18