Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
528to532
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
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datumseingabe - der wievielte Werktag ?

Datumseingabe - der wievielte Werktag ?
10.12.2004 18:47:46
Marcus
Hallo XL-Freunde,
ich möchte, dass in B1 ein Datum eingegeben wird.
In Tabelle2 habe ich ein paar Tage aufgelistet, an denen in den USA ein Feiertag ist. Nun möchte ich, dass ein Makro mir den Werktag im aktuellen Monat nennt.
Heute, am 10.12.2004 wäre es der 8. Tag. Samstage, Sonntage und die Feiertage in der Liste sollen vom aktuellen Datum abgezogen werden.
Ich habe schon ein Makro geschrieben, aber das kommt leider nicht ohne normale Excel-Formeln aus. Daher wäre ich sehr dankbar, wenn mir jemand den VBA-Code dafür geben kann.
Vielen Dank !!!
Marcus

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumseingabe - der wievielte Werktag ?
Ramses
Hallo
bei VBA-Gut solle es kein Problem sein, diese Funktion für dich einzusetzen
Option Explicit

Function myPrivateNetworkDays(myStart As Range, myEnd As Range, Optional freedays As Range) As Long
'by Ramses
'Aufruf erfolgt in Tabelle
'=myPrivateNetworkDays(A1;A2;B1:B10)
'A1 = StartDatum
'A2 = EndDatum
'B1:B10 = Bereich in dem die freien Tage als Datum definiert sind
On Error GoTo myErrorhandler
Dim i As Long, n As Long, DayChk As Boolean
Dim myNetDays As Long, myF As Variant
Dim myC As Range
myNetDays = 0
n = 0
DayChk = False
For i = myStart To myEnd
If Weekday(Format(myStart + n, "dd.mm.yyyy"), vbMonday) < 6 Then
'On Error Resume Next
For Each myC In freedays
If myC.Value = myStart + n Then
DayChk = True
Exit For
End If
Next
Weiter:
Err.Clear
If DayChk = False Then
myNetDays = myNetDays + 1
End If
DayChk = False
End If
n = n + 1
Next i
ErrExit:
myPrivateNetworkDays = myNetDays
Exit Function
myErrorhandler:
Select Case Err.Number
Case 424 'Kein Feiertagsbereich
Resume Weiter
Case Else
MsgBox Err.Number & ": " & Err.Description
Resume ErrExit
End Select
End Function

Gruss Rainer
Anzeige
Vielen Dank Rainer!! Genau das habe ich gebraucht!
Marcus
Danke !!!!

246 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige