Office: letzten Werktag ermitteln

Helfe beim Thema letzten Werktag ermitteln in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, habe folgendes Problem: Habe ein Workbook mit zwei Sheets, "MainPage" und "Werte". In diesem Workbook sollen Werte aus einer anderen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von simsima12, 22. September 2012.

  1. letzten Werktag ermitteln


    Hallo zusammen,

    habe folgendes Problem:
    Habe ein Workbook mit zwei Sheets, "MainPage" und "Werte". In diesem Workbook sollen Werte aus einer anderen Datei kopiert werden. Diese andere Datei hat folgende Form : NAME_20120629_20120731.xls, also immer der Name und der letzte Werktag vom Vorvormonat bis zum aktuellen Vormonat. Meine Aufgabe ist es ein Macro-Code zu schreiben, welches diesen Vorgang automatisiert. Habe nun fats alles fertig, nur ein Problem: wenn der letzte Werktag ein Samstag oder Sonntag ist, stimmt mein Code nicht mehr.

    So schaut der aus :

    Sub Dateiöffnen()
    Dim curser As Range
    Dim reader As Range
    Dim path_to_file, file_name As String
    Dim datum1 As String
    Dim datum2 As String
    Dim Name As String

    Sheets("MainPage").Select
    Set curser = Range("A2")

    'open xls Datei, NAME_20120629_20120731.xls

    path_to_file = Application.ActiveWorkbook.Path & "\"
    datum1 = Format(DateAdd("m", -1, (DateSerial(Year(Date), Month(Date), 0))), "yyyymmdd")
    datum2 = Format(DateAdd("m", -2, (DateSerial(Year(Date), Month(Date), 0))), "yyyymmdd")
    file_name = "NAME_" & datum2 & "_" & datum1 & ".xls"


    Workbooks.Open (path_to_file & file_name)
    Sheets("MainPage").Select
    End Sub

    Kann mir bitte jemand helfen?

    :)
     
    simsima12, 22. September 2012
    #1
  2. OfficeUser Neuer User
    Hallo Simsima 12,

    vielleicht hilft Dir das folgende Beispiel weiter:
    Function fLetzterWerktag(m As Byte, y As Integer)

    Dim TageGesamt As Integer
    Dim LetzterTag As Date

       TageGesamt = DateSerial(y, m + 1, 1) - DateSerial(y, m, 1)
       LetzterTag = DateSerial(y, m, TageGesamt)

       Select Case Weekday(LetzterTag)
          Case 1
             fLetzterWerktag = DateAdd("d", -2, LetzterTag)
          Case 7
             fLetzterWerktag = DateAdd("d", -1, LetzterTag)
          Case Else
             fLetzterWerktag = LetzterTag
       End Select

    End Function

    Public Sub Test()

       MsgBox Format(fLetzterWerktag(6, 2012), "YYYYMMDD") & "_" & Format(fLetzterWerktag(7, 2012), "YYYYMMDD")

    End Sub

    Code eingefügt mit Syntaxhighlighter 4.15
    Gruß Peter
     
    OfficeUser, 24. September 2012
    #2
  3. Hi,
    du kannst auch das mal ausprobieren: Code:
     
  4. letzten Werktag ermitteln

    Hi Peter,
    immer wieder mal erstaunt mich die Nutzung von DateAdd("d",...) für eine IMHO einfache Berechnung.

    Was spricht dagegen, statt
    fLetzterWerktag = DateAdd("d", -2, LetzterTag)
    einfach zu schreiben
    fLetzterWerktag = LetzterTag - 2
    ?

    DateAdd führt hier m.E. eher zu einer "Verklärung" des Datums und lenkt davon ab,
    dass ein Datum auch einfach eine ganze Zahl ist, mit der man rechnen kann.

    Ähnliches gilt für die Berechnung des Vormonats-Letzten: Datum - Day(Datum) reicht völlig aus.
     
  5. Vielen dank für die Hilfe.
    Klappt alles.
     
    simsima12, 1. Oktober 2012
    #5
Thema:

letzten Werktag ermitteln

Die Seite wird geladen...
  1. letzten Werktag ermitteln - Similar Threads - Werktag ermitteln

  2. Wenn Werktag dann x

    in Microsoft Excel Hilfe
    Wenn Werktag dann x: Hallo zusammen, gibt es eine Formel, die automatisch ein "x" bzw. einen Text bei einer Zeile mit Wochentag setzt? In den Spalten A und B befinden sich jeweils Datum und Wochentag. Danke vorab.
  3. Bedingte Formatierung Werktage

    in Microsoft Excel Hilfe
    Bedingte Formatierung Werktage: Hallo zusammen, würde gerne das ein Datum in einer Tabelle 1 Tag vor HEUTE farblich markiert wird. Mein Problem, wenn HEUTE Montag ist, dann sollte Freitag markiert werden. Geht dies ohne...
  4. Heute-Datum -2 Werktage automatisch einfügen ? VBA

    in Microsoft Excel Hilfe
    Heute-Datum -2 Werktage automatisch einfügen ? VBA: Hallo zusammen, ich bin ein Neuling was VBA angeht und habe folgendes Problem: Wenn ich meine Exceldatei öffne, soll in Tabellenblatt 1-3 jeweils in Zelle A1 das Heute Datum minus 2 Werktage...
  5. Mit Werktagen rechnen ohne Wochenenden und Feiertage

    in Microsoft Excel Hilfe
    Mit Werktagen rechnen ohne Wochenenden und Feiertage: Hallo zusammen, ich versuche gerade mit Datumswerten in Excel zu rechnen. Genau gesagt möchte ich auf einen Datumswert z.B. den 11.12.2013 drei Arbeitstage dazurechnen. Wochenende und Feiertage...
  6. Zeitzyklen berechnen, nur Werktage, oder mit oder ohne Feiertage

    in Microsoft Access Hilfe
    Zeitzyklen berechnen, nur Werktage, oder mit oder ohne Feiertage: Hallo zusammen, ich muss verschiedene Zyklen von Fälligkeiten berechnen. Immer ausgehend von einem letzten fälligen Termin. Die Vielzahl ist recht hoch (glaube ich zumindest). (Einige werden es...
  7. Schichtdienst Zulagen, bei bestimmten Uhrzeiten. Werktags, Sonntag u Feiertagen

    in Microsoft Excel Hilfe
    Schichtdienst Zulagen, bei bestimmten Uhrzeiten. Werktags, Sonntag u Feiertagen: Hallo, ich habe paar Probleme mit der Schichtberechnung im Schichtdienst, 12/24 Stdt. u. komme einfach darin nicht mehr weiter. Habe so viel angeschaut, im www. und nix richtiges gefunden. Wie...
  8. Datum in VBA 97 auf letzten Werktag zurücksetzen

    in Microsoft Excel Hilfe
    Datum in VBA 97 auf letzten Werktag zurücksetzen: Hi, wie schon zich mal erwähn, ich bin VBA-Laie und benötige mal wieder eure Hilfe :oops: Zur Bearbeitung von Adressen verwenden wir eine Maske, die in VBA erstellt wurde. Da wir immer...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden