Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datum um einen Werktag zurücksetzen





Frage

Hallo zusammen, ich habe folgendes Problem: In der Spalte B möchte ich ein kopiertes Datum (aus einer anderen Tabelle) um einen Werktag zurücksetzen. Beispiel: DI 27.11.2006 -> Mo 26.10.2006 Wenn jedoch der Tag auf einen Montag fällt, dann soll der Freitag gewählt werden. Auch Feiertage sollten berücksichtigt werden. Kennt hier jeman eine VBA-Lösung? Ich muss das als Funktion in eine Prozedur einbetten. Danke schon mal.

Antwort 1 von rainberg

Hallo,

anbei ein Vorschlag

Option Explicit

Sub test()
    If Weekday(Range("A1"), 2) = 1 Then
        Range("B1").Value = Range("A1").Value - 3
    Else
        Range("B1").Value = Range("A1").Value - 1
    End If
End Sub


Gruß
Rainer

Antwort 2 von rainberg

Hallo nochmal,

wenn sich unter Deinen kopierten Daten auch Samstage und Sonntage befinden, dann nimm diesen Code.

Option Explicit

Sub test()
    With Range("B1")
    Select Case Weekday(Range("A1"), 2)
    Case Is = 1
         .Value = Range("A1").Value - 3
    Case Is = 7
        .Value = Range("A1").Value - 2
    Case Else
       .Value = Range("A1").Value - 1
    End Select
    End With
End Sub


Gruß
Rainer

Antwort 3 von sas

Beim Ausführen des 1. Codes ergibt sich folgender Fehler:
Typen unverträglich. Ich weiss leider nicht, wie man diesen behebt.

Samstage und Sonntage sind nicht dabei, aber Feiertage.

Gruss
sas

Antwort 4 von rainberg

Hallo ???,

bei Deinem kopierten Datum handelt es sich offensichtlich um einen String und nicht um ein echtes Datum.

Habe den Code diesbezüglich angepasst.

Option Explicit

Sub test()
If Weekday(CDate(Right(Range("a1"), 10)), 2) = 1 Then
Range("B1").Value = CDate(Right(Range("A1"), 10)) - 3
Else
Range("B1").Value = CDate(Right(Range("A1"), 10)) - 1
End If
End Sub

Gruß
Rainer

Antwort 5 von sas

Hallo nochmal,

das Datum wird aus einer anderen Datei in die Spalte B transferiert. Diese enthält das Format "m/d/yyyy".
Die Tabelle sieht folgendermaßen aus:
Spalte A: IDNum
Spalte B: Datum
Spalte C: VNum
Spalte D: FKZNum

Die Werte in C und D werden ebenfalls aus einer xls-Datei
transferiert. Diesbzgl. habe ich mit meinem VBACode auch keine Probleme.
Leider bekomme ich bei o.g. Code wieder den Laufzeitfehler ´13´ Typen unverträglich.

Gruss
Sarah

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: