Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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

(Feiertag) Zahl wird nicht berechnet

(Feiertag) Zahl wird nicht berechnet
15.12.2022 16:00:04
Candy
Guten Tag,
Ich habe folgendes Problem, die Feiertage in meinem Kalender habe ich durch eine Funktion ermöglicht.
Jetzt folgendes: Falls kein Feiertag in die Zelle eingetragen wird soll eine Zahl eingetragen werden mit der dann im Blatt weitergerechnet werden kann.
Leider bekomm ich das nicht so richtig hin..
hier die Funktion:

Function Feiertag(Datum As Date) As String
Dim J%, D%
Dim O As Date
Dim Zahl As Variant
J = Year(Datum)
'Osterberechnung
D = (((255 - 11 * (J Mod 19)) - 21) Mod 30) + 21
O = DateSerial(J, 3, 1) + D + (D > 48) + 6 - _
((J + J \ 4 + D + (D > 48) + 1) Mod 7)
'Feiertage berechnen
Select Case Datum
Case DateSerial(J, 1, 1)
Feiertag = "Neujahr"
Case DateSerial(J, 1, 6)
Feiertag = "Dreikönig*"
Case DateAdd("D", -2, O)
Feiertag = "Karfreitag"
Case O
Feiertag = "Ostersonntag"
Case DateAdd("D", 1, O)
Feiertag = "Ostermontag"
Case DateSerial(J, 5, 1)
Feiertag = "Erster Mai"
Case DateAdd("D", 39, O)
Feiertag = "Christi Himmelfahrt"
Case DateAdd("D", 49, O)
Feiertag = "Pfingstsonntag"
Case DateAdd("D", 50, O)
Feiertag = "Pfingstmontag"
Case DateAdd("D", 60, O)
Feiertag = "Fronleichnam*"
Case DateSerial(J, 8, 15)
Feiertag = "Maria Himmelfahrt*"
Case DateSerial(J, 10, 3)
Feiertag = "Deutsche Einheit"
Case DateSerial(J, 11, 22) - (DateSerial(J, 11, 18) Mod 7)
Feiertag = "Buß- und Bettag*"
Case DateSerial(J, 10, 31)
Feiertag = "Reformationstag*"
Case DateSerial(J, 11, 1)
Feiertag = "Allerheiligen*"
Case DateSerial(J, 12, 24)
Feiertag = "Heilig Abend*"
Case DateSerial(J, 12, 25)
Feiertag = "EWeihnacht"
Case DateSerial(J, 12, 26)
Feiertag = "ZWeihnacht"
Case DateSerial(J, 12, 31)
Feiertag = ""                                       "" Hier hab ich versucht eine Zahl zu generieren falls kein Feiertag vorhanden. Die Ausgabe eines Zahlenwertes hab ich zwar
hinbekommen jedoch kann mit dieser zahl in der Tabelle nicht weitergerechnet werden. Bei weiterberechnung wird der wert praktisch
als NULL erkannt... und gar nicht in die Rechnung mit einbezogen.
End Select
End Function

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 16:12:09
Sigi.21
Hallo Candy,
deine Ausgabeform ist doch Text/String ("Function Feiertag(Datum As Date) As String"). Warum willst du da eine Zahl?
Der 31.12. Ist Silvester, wenn kein Datum zutrifft, dann Feiertag =""
Gruß Sigi
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 16:20:36
UweD
Hallo
Wenn du einen Wert in Anführungszeichen setzt, wird das als Text interpretiert, mit dem Excel of nicht weiterrechnen kann.
Zumal du Feiertag ja auch als String definiert hast.
Änder mal auf Typ Variant
Komplett:

Function Feiertag(Datum As Date) As Variant
Dim J%, D%
Dim O As Date
Dim Zahl As Variant
J = Year(Datum)
'Osterberechnung
D = (((255 - 11 * (J Mod 19)) - 21) Mod 30) + 21
O = DateSerial(J, 3, 1) + D + (D > 48) + 6 - _
((J + J \ 4 + D + (D > 48) + 1) Mod 7)
'Feiertage berechnen
Select Case Datum
Case DateSerial(J, 1, 1)
Feiertag = "Neujahr"
Case DateSerial(J, 1, 6)
Feiertag = "Dreikönig*"
Case DateAdd("D", -2, O)
Feiertag = "Karfreitag"
Case O
Feiertag = "Ostersonntag"
Case DateAdd("D", 1, O)
Feiertag = "Ostermontag"
Case DateSerial(J, 5, 1)
Feiertag = "Erster Mai"
Case DateAdd("D", 39, O)
Feiertag = "Christi Himmelfahrt"
Case DateAdd("D", 49, O)
Feiertag = "Pfingstsonntag"
Case DateAdd("D", 50, O)
Feiertag = "Pfingstmontag"
Case DateAdd("D", 60, O)
Feiertag = "Fronleichnam*"
Case DateSerial(J, 8, 15)
Feiertag = "Maria Himmelfahrt*"
Case DateSerial(J, 10, 3)
Feiertag = "Deutsche Einheit"
Case DateSerial(J, 11, 22) - (DateSerial(J, 11, 18) Mod 7)
Feiertag = "Buß- und Bettag*"
Case DateSerial(J, 10, 31)
Feiertag = "Reformationstag*"
Case DateSerial(J, 11, 1)
Feiertag = "Allerheiligen*"
Case DateSerial(J, 12, 24)
Feiertag = "Heilig Abend*"
Case DateSerial(J, 12, 25)
Feiertag = "EWeihnacht"
Case DateSerial(J, 12, 26)
Feiertag = "ZWeihnacht"
Case DateSerial(J, 12, 31)
Case Else
Feiertag = 99 '!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Deine Zahl
End Select
End Function
LG UweD
Anzeige
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 16:23:34
Candy
ich möchte gerne falls im Kalender kein Feiertag eingetragen wird sondern im Endeffekt die Zelle "Leer" steht eine Zahl ausgegeben haben.
Hintergrund ist die Weiterberechnung mit verschiedenen werden zur Ermittlung der Überstunden.
Also wenn keine Feiertag eingetragen ist will ich die Zahl (0,72) in den Zellen stehen haben und mit dieser dann weitere Berechnungen durchführen
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 16:41:12
UweD
Hallo dann mach das doch...

...
Case Else
Feiertag = 0.72
End Select
End Function
LG UweD
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 16:52:33
Candy
ah ja super vielen dank hab den Fehler gefunden.
Hab immer ein Komma Statt punkt eingesetzt.
und die verwendung von Variant hat auch geholfen.
jez klappt es danke euch
Anzeige
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 17:06:11
Candy
wie bekomme ich dass jetzt noch hin, dass die Zahl in jedes Feld außer Sa, und So geschrieben wird? die sollen leer bleiben...
Userbild
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 17:27:56
GerdL
Moin Candy!

'.........................
Case Else
If Weekday(Datum, vbMonday) 
Gruß Gerd
AW: (Feiertag) Zahl wird nicht berechnet
15.12.2022 17:28:23
Daniel
Hi
Bau dir das in seine Funktion ein.
1. mach die Funktion Variante statt String
2. ins Case Else kommt

if Weekday(Datum, 2) > 5 then
Feiertag = ""
Else
Feiertag = 0.72
End if
Gruß Daniel
Anzeige
AW: (Feiertag) Zahl wird nicht berechnet
18.12.2022 16:02:09
Candy
Hallo liebe Helfer.
ich möchte mich hiermit für eure Hilfe bedanken.
ich hab festgestellt, dass ich mich nur für das erste Problem bei euch bedankt habe.
bei der 2. Frage habe ich jedoch weder Rückmeldung noch ein Dankeschön hinterlassen...
Hiermit nochmal ein herzliches Dankeschön an euch für die tolle und schnelle Hilfe.
Auf zukünftig gute Zusammenarbeit !
@Daniel
@GerdL

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige