Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum Rückwärts

Datum Rückwärts
24.02.2023 19:30:10
Pottblume
Hallo zusammen,
ich bräuchte einmal Hilfe bei folgendem Problem. Anbei die entsprechende Datei. Ich habe in Zeile 4 jeweils 6 Etappen die jeweils Zeile 5 die Dauer von 1 haben, die Dauer kann sich aber auch mal verändern. Ich würde jetzt gerne basierend auf dem Datum der Etappe 6 „rückwärts“ rechnen und zwar in Arbeitstagen, da am Wochenende nicht trainiert werden soll, wann mit Etappe 1 gestartet werden soll. Wenn ein Teilnehmer sich entschließt weniger als alle Etappen zu bestreiten, wie bei Teilnehmer B bis F, dann soll die Formel eben genau dies berücksichtigen.
Vielen Dank für Eure Hilfe!

Pottblume

https://www.herber.de/bbs/user/157995.xlsx

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

Betreff
Datum
Anwender
Anzeige
=ARBEITSTAG() kann auch rückwärts
24.02.2023 19:40:29
lupo1
AW: =ARBEITSTAG() kann auch rückwärts
24.02.2023 19:50:13
Frank
Ja, aber wie?
AW: da wäre zunächst zu klären, ...
24.02.2023 20:00:35
neopa
Hallo Frank,
... wenn am WE nicht trainiert werden soll, weshalb Du dann in Deiner Beispieldatei in D10 und D11 Sa bzw. So ausgewiesen hast? Gilt das da nicht?
Außerdem ist unklar, wo definiert ist/wird, welche Etappen "übersprungen" werden? Ich bin dann jetzt aber bis zumindest morgen offline.
Gruß Werner
.. , - ...
AW: da wäre zunächst zu klären, ...
24.02.2023 20:13:08
Frank
Hallo Werner,
sorry! Da hat sich bei mir der Fehlerteufel eingeschlichen! Richtig in D10 und D11 muss das natürlich der Freitag sein..
Den ersten Schritt habe ich schon über die Formel Arbeitstag und dann setze ich die Dauer einfach negativ, dass geht schon :-)
Was ich jetzt noch brauche, wenn ich manuell die Etappe, sprich das Datum einer Etappe lösche, das die Formel auf den letzten, also letzten eingetragenen Zeitpunkt zurückgreift und diesen dann als Ausgangspunkt für die Berechnung nimmt...
Gruß
Frank
Anzeige
AW: da wäre zunächst zu klären, ...
24.02.2023 22:15:21
Yal
hallo zusammen,
wenn ich das richtig verstehe, egal wo man eine Datum einträgt, sollte sich links davon die nicht leere Zelle rückwärts und die nicht leere Zelle rechts aufwärts anpassen, ohne dass dabei eine Wochende erwischt wird?
In der Codepane der Arbeitsblatt ablegen (auf dem Reiter vom Arbeitsblatt rechtsklicken und "Code anzeigen"):
Private Memoire As Date
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range(Range("D6"), Cells(Rows.Count, "I").End(xlUp))) Is Nothing Then Memoire = CDate(Target.Value)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim Datum
    Application.EnableEvents = False
    If Not Intersect(Target, Range(Range("D6"), Cells(Rows.Count, "I").End(xlUp))) Is Nothing Then
        Datum = CDate(Target.Value)
    'bei Eingabe auf Wochenende, reject
        If WorksheetFunction.Weekday(Datum, 2) > 5 Then
            Target.Value = Memoire
            MsgBox Format(Datum, "DD.MM.YYYY"" ist ein ""DDDD.")
        Else
            Deploy Target.Row, Datum, Target.Column - 1, 4, -1 'nach links
            Deploy Target.Row, Datum, Target.Column + 1, 9, 1 'nach rechts
        End If
    End If
    Application.EnableEvents = True
End Sub
Private Function Deploy(Zeile, ByVal Datum, ByVal Start, ByVal Ende, ByVal Schritt)
Dim i
    For i = Start To Ende Step Schritt
        If Cells(Zeile, i) > "" Then
            Cells(Zeile, i) = WorksheetFunction.WorkDay(Datum, -1)
            Datum = WorksheetFunction.WorkDay(Datum, -1)
        End If
    Next
End Function
VG
Yal
Anzeige
Fehlerchen...
24.02.2023 22:18:08
Yal
im Deploy muss natürlich den Workday entsprechend der Richtung sich fortschreiben... und nicht jedesmal -1 !
Private Function Deploy(Zeile, ByVal Datum, ByVal Start, ByVal Ende, ByVal Schritt)
Dim i
    For i = Start To Ende Step Schritt
        If Cells(Zeile, i) > "" Then
            Cells(Zeile, i) = WorksheetFunction.WorkDay(Datum, Schritt)
            Datum = WorksheetFunction.WorkDay(Datum, Schritt)
        End If
    Next
End Function

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige