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

Forumthread: Arbeitstage auf ein Datum addieren

Arbeitstage auf ein Datum addieren
05.05.2017 22:34:35
Christian
Moin alle zusammen,
nachdem mein Problem vor einigen Tagen leider nicht gelöst wurden konnte, möchte ich den Fall nochmal offen stellen und mich sehr bei Chris für seinen bisherigen Einsatz bedanken:
Hier gehts zum alten Fall:
https://www.herber.de/forum/messages/1556032.html
Ablauf des Programms
1.Auswählen der MSN aus der Liste, übertrag in das Textfeld TextBoxMSN
2.Werte aus Tabelle Planung werden in Term. Startwerte geladen, sowie die Werte aus Tabelle Planung aktuell als Platzhalter (Diese Werte sollen verändert werden)
3.Auswählen der Störungen lassen Anzahl Tage im Textfeld Tage erscheinen.
4.Die Tage sollen auf das Datum in dem jeweiligen Textfeld bei „Neue Startwerte“ aufaddiert werde. Zum Beispiel für CF-1 soll die Anzahl an Tagen im ersten Textfeld „TextCF_1Damage addiert werden
Problem:
Der Code läuft bis zur Schleife durch

'Neue Werte in die Tabelle Planung Aktuell
With tblReal
If WorksheetFunction.CountIf(.Columns(2), MSN) = 0 Then
MsgBox "Nummer ist nicht vorhanden"
Else
findZeile = Application.Match(MSN, .Columns(2), 0)
.Cells(findZeile, 6) = Datum1 'CF-1
.Cells(findZeile, 14) = Datum3 'CF-3
.Cells(findZeile, 18) = Datum4 'CF-4
.Cells(findZeile, 22) = Datum5 'CF-5
End If
End With

Ziel des Programms:
Es geht im Grunde darum, die Grünen Felder bei Störungen nach rechts zu bewegen. Also zusätzliche Arbeitstage auf den Termin zu addieren. Und dafür ist die Userform gedacht, welche sich durch den Klick auf „Clustertermine verschieben“ auszuwählen lässt.
Die Anfangsdaten werden aus der Tabelle „Planung“ reingeladen und in der Tabelle „Planung Aktuell“sollen die Änderungen gespeichert werden.
Textfelder
Term. Startwerte
TextCF_1 ...
Neue Startwerte
TextCF_1_neu ...
Auswahl Störungen
CF1_Damage ...
Wert der Störungen in Tagen
TextCF1_Damage
MSN
TextboxMSN
Die Beispieldatei ist auf das wesentliche reduziert:
https://www.herber.de/bbs/user/113357.xlsm
Verzeiht mir bitte den vielen Text, ich habe versucht das Problem so detailiert wie nötig zu beschreiben.Ich weiss den Aufwand den ihr hier reinsteckt wirklich zu schätzen. Ich steh ein wenig auf den Schlauch weil ich nicht verstehe warum ich da einen Fehler bekomme und das Programm die Schleife nicht durchführt.
Viele Grüße
Christian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitstage auf ein Datum addieren
06.05.2017 13:31:05
Christian
Bekommt ihr auch den Laufzeitfehler Anwendungs- oder objektdefinierter Fehler? Es kann ja kein Format Fehler mehr sein. Alle Variable sind im Datumsformat.. ich steh da echt auf den Schlauch..
Funktion Networkdays
06.05.2017 22:46:01
Christian
So, jetzt habe ich nochmal einige Versuche gestartet das Problem zu lösen und bin auf die Ursache gestossen.
Wenn ich auf CF-1 (08.02.2017) einen Arbeitstag drauf addieren möchte, bekomme ich in die Variable den 14.05.1816
Ich vermute der Fehler liegt daran, das ich Arbeitstage auch als Datum kennzeichne obwohl ich ja nur einzelne Arbeitstage auf das Datum raufrechnen will. Die Funktion network erwartet hier aber überall denselben Datentyp also Datum?

StartDatum1 = CDate(Me.TextCF_1_neu.Value)
Arbeitstage1 = CDate(Me.TextCF1_Damage.Value) 'Anzahl Tage
Datum1 = WorksheetFunction.NetworkDays_Intl(StartDatum1, CDate(Arbeitstage1), , tblKalender. _
Range("B2:B100"))


With tblReal
If WorksheetFunction.CountIf(.Columns(2), MSN) = 0 Then
MsgBox "Nummer ist nicht vorhanden"
Else
findZeile = Application.Match(MSN, .Columns(2), 0)
.Cells(findZeile, 6) = Datum1 'CF-1
.Cells(findZeile, 14) = Datum3 'CF-3
.Cells(findZeile, 18) = Datum4 'CF-4
.Cells(findZeile, 22) = Datum5 'CF-5
End If
End With
End Sub

Anzeige
AW: Funktion Networkdays
09.05.2017 11:02:47
ChrisL
Hi Christian
(Wenn du die Frage nicht als offen kennzeichnest, dann schliesst du den Beitrag mit deiner eigenen Antwort)
Inzwischen glaube ich du hast die falsche Funktion (Networkdays) erwischt.
Arbeitstage = Nettoarbeitstage(StartDatum, Enddatum,,Feiertage)
Enddatum = Arbeitstag(Startdatum, Arbeitstage, Feiertage)
https://support.office.com/de-de/article/ARBEITSTAG-Funktion-f764a5b7-05fc-4494-9486-60d494efbf33
cu
Chris
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Arbeitstage zu einem Datum addieren in Excel


Schritt-für-Schritt-Anleitung

  1. Starte Excel und öffne die Datei, in der Du das Datum bearbeiten möchtest.
  2. Gib das Startdatum in eine Zelle ein. Zum Beispiel in Zelle A1.
  3. Gib die Anzahl der Arbeitstage in eine andere Zelle ein, z.B. in Zelle B1.
  4. Verwende die Funktion ARBEITSTAG() oder NETTOARBEITSTAGE(), um die Arbeitstage zu addieren:
    • Für ARBEITSTAG:
      =ARBEITSTAG(A1, B1)
    • Für NETTOARBEITSTAGE:
      =NETTOARBEITSTAGE(A1, B1)

Diese Funktionen berechnen das neue Datum, indem sie die angegebenen Arbeitstage auf das Startdatum addieren.


Häufige Fehler und Lösungen

  • Laufzeitfehler: Wenn Du einen Laufzeitfehler erhältst, stelle sicher, dass alle Variablen im Datumsformat vorliegen. Verwende CDate() zur Konvertierung, falls notwendig.
  • Falsches Datum: Wenn das Ergebnis ein unerwartetes Datum wie den 14.05.1816 ist, überprüfe, ob Du die Anzahl der Arbeitstage korrekt als Zahl und nicht als Datum eingegeben hast.

Alternative Methoden

  • Du kannst die Funktion DATUM() verwenden, um spezifische Tage zu addieren, indem Du die Anzahl der Tage manuell berechnest:
    =DATUM(JAHR(A1), MONAT(A1), TAG(A1) + B1)
  • Eine weitere Möglichkeit ist die Verwendung von WENN() in Kombination mit ARBEITSTAG, um Bedingungen für Feiertage oder Wochenenden zu setzen.

Praktische Beispiele

  1. Beispiel 1: Startdatum: 01.01.2023, Arbeitstage: 5
    =ARBEITSTAG("01.01.2023", 5)  // Ergebnis: 08.01.2023
  2. Beispiel 2: Startdatum aus Zelle A1, Arbeitstage in Zelle B1
    =ARBEITSTAG(A1, B1)

Diese Beispiele demonstrieren, wie Du mit Excel Arbeitstage bis zu einem Datum addieren kannst.


Tipps für Profis

  • Feiertage berücksichtigen: Nutze die erweiterten Funktionen ARBEITSTAG() oder NETTOARBEITSTAGE() und füge einen dritten Parameter hinzu, um Feiertage auszuschließen.
  • Nettoarbeitstage berechnen: Verwende die NETTOARBEITSTAGE()-Funktion für eine genauere Berechnung, wenn Du mehrere Feiertage und Wochenenden berücksichtigen möchtest.
  • Formeln testen: Teste Deine Formeln in einer neuen Excel-Datei, um sicherzustellen, dass sie ordnungsgemäß funktionieren, bevor Du sie in Deine Hauptdatei überträgst.

FAQ: Häufige Fragen

1. Wie addiere ich in Excel Tage zu einem Datum?
Verwende die Funktion ARBEITSTAG() oder DATUM() zusammen mit der Anzahl der Tage, die Du hinzufügen möchtest.

2. Was ist der Unterschied zwischen ARBEITSTAG und NETTOARBEITSTAGE?
ARBEITSTAG() gibt das Datum zurück, das eine bestimmte Anzahl von Arbeitstagen nach einem Startdatum liegt, während NETTOARBEITSTAGE() die Anzahl der Arbeitstage zwischen zwei Daten berechnet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige