Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige