Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1280to1284
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

Typen unverträglich

Typen unverträglich
22.10.2012 12:51:18
Maximilian
Hallo,
um die Funktion Workday in Excel 2003 nutzen zu können, habe ich diese in einem Modul hinterlegt:
Option Explicit
Public Function ATag(Datum As Date, Optional Zusatztage As Range)
ShowMsg ("1")
Dim i%
Application.Volatile
If IsDate(Datum) Then
If Zusatztage Is Nothing Then
For i = 1 To 5
If BTag(Datum + i) = 1 Then Exit For
Next
Else
For i = 1 To 5
If BTag(Datum + i) = 1 Or Application.IsNumber(Application.Match(CLng(Datum + i),  _
Zusatztage, 0)) Then Exit For
Next
End If
End If
ATag = Datum + i
End Function
Public Function NettoATage(Beginn As Date, Ende As Date, Optional Zusatztage As Range)
Application.Volatile
If IsDate(Beginn) And IsDate(Ende) And Beginn  5 Then
BTag = 0
Else
' Feiertage
' Karfreitag
Feiertage(1) = (Ostern(Jahr)) - 2
' Ostermontag
Feiertage(2) = (Ostern(Jahr)) + 1
' Christi Himmelfahrt
Feiertage(3) = (Ostern(Jahr)) + 39
' Pfingstmontag
Feiertage(4) = (Ostern(Jahr)) + 50
' Frohnleichnam
Feiertage(5) = (Ostern(Jahr)) + 60
' Neujahr
Feiertage(6) = CDate("01.01." & Jahr)
' 1.Mai
Feiertage(7) = CDate("01.05." & Jahr)
' Maria Himmelfahrt
Feiertage(8) = CDate("15.08." & Jahr)
' Tag der deutschen Einheit
If Jahr = 1900
intA = intJahr Mod 19
intB = Int(intJahr / 100)
intC = intJahr Mod 100
intD = Int(intB / 4)
intE = intB Mod 4
intF = Int((intB + 8) / 25)
intG = Int((intB - intF + 1) / 3)
intH = (19 * intA + intB - intD - intG + 15) Mod 30
intI = Int(intC / 4)
intK = intC Mod 4
intL = (32 + 2 * intE + 2 * intI - intH - intK) Mod 7
intM = Int((intA + 11 * intH + 22 * intL) / 451)
intN = Int((intH + intL - 7 * intM + 114) / 31)
intP = (intH + intL - 7 * intM + 114) Mod 31
Ostern = DateSerial(intJahr, intN, intP + 1)
End Select
End Function
Wenn ich dieses Modul nun nutzen möchte, beipsielsweise über
MsgBox(ATag(CDate("01.01.2012"),5))
bekomme ich eine Debuggermeldung: Fehler beim kompilieren. Typen unverträglich.
Was mache ich denn da Falsch? Habe doch extra den String als Datum formatiert per CDate...

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Typen unverträglich
22.10.2012 12:59:06
Rudi
Hallo,
Optional Zusatztage As Range ?
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige