HERBERS Excel-Forum - die Beispiele

Thema: Aktuellen Arbeitstag in allen Arbeitsblättern suchen.

Home

Gruppe

DatumZeit

Problem

In allen Arbeitsblättern soll der aktuelle Arbeitstag (ohne Berücksichtigung von Samstagen und Sonntagen) gesucht werden. Ist der aktuelle Tag ein Samstag oder Sonntag, wird der Montag gesucht.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
StandardModule: Modul1

Sub FindWorkDay()
   Dim wks As Worksheet
   Dim dat As Date
   Dim vRow As Variant
   dat = Date
   Call MyWorkDay(dat)
   For Each wks In Worksheets
      vRow = Application.Match(CDbl(dat), wks.Columns(1), 0)
      If Not IsError(vRow) Then Exit For
   Next wks
   If Not IsError(vRow) Then
      Application.Goto wks.Cells(vRow, 1), True
   Else
      MsgBox "Datum wurde nicht gefunden!"
   End If
End Sub

Sub MyWorkDay(ByRef dat As Date)
   Dim iDay As Integer
   iDay = WorksheetFunction.Weekday(dat)
   Select Case iDay
      Case 7: dat = dat + 2
      Case 1: dat = dat + 1
   End Select
End Sub