Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Feiertage per VBA
#1
Hallo zusammen,

bin schon wieder mal an meine Grenzen gestoßen Huh.

Ich habe folgendem Code um die Feiertage automatisch auszurechnen.

Code:
Option Explicit
Public Function Feiertage(intYear As Integer) As Variant
   Dim varDates(13, 1) As Variant
   Dim dEaster As Date
   dEaster = Easter(intYear)
  
   varDates(0, 0) = DateSerial(intYear, 1, 1)
   varDates(0, 1) = "Neujahr"
  
   varDates(1, 0) = DateSerial(intYear, 1, 6)
   varDates(1, 1) = "Dreikönig"
  
   varDates(2, 0) = dEaster - 3
   varDates(2, 1) = "Karfreitag"
  
   varDates(3, 0) = dEaster + 1
   varDates(3, 1) = "Ostermontag"
  
   varDates(4, 0) = DateSerial(intYear, 5, 1)
   varDates(4, 1) = "Tag der Arbeit"
  
   varDates(5, 0) = dEaster + 39
   varDates(5, 1) = "Christi Himmelfahrt"
  
   varDates(6, 0) = dEaster + 50
   varDates(6, 1) = "Pfingstmontag"
  
   varDates(7, 0) = dEaster + 60
   varDates(7, 1) = "Fronleichnam"
  
   varDates(8, 0) = DateSerial(intYear, 10, 3)
   varDates(8, 1) = "Tag der Einheit"
  
   varDates(9, 0) = DateSerial(intYear, 11, 1)
   varDates(9, 1) = "Allerheiligen"
  
   varDates(10, 0) = DateSerial(intYear, 12, 24)
   varDates(10, 1) = "Heiligabend"
  
   varDates(11, 0) = DateSerial(intYear, 12, 25)
   varDates(11, 1) = "1. Weihnachtstag"
  
   varDates(12, 0) = DateSerial(intYear, 12, 26)
   varDates(12, 1) = "2. Weihnachtstag"
  
   varDates(13, 0) = DateSerial(intYear, 12, 31)
   varDates(13, 1) = "Silvester"
  
   Feiertage = varDates
  
End Function

Private Function Easter(Year As Integer) As Date
   Dim D As Integer
   D = (((255 - 11 * (Year Mod 19)) - 21) Mod 30) + 21
   Easter = DateSerial(Year, 3, 1) + D + (D > 48) + 6 - _
       ((Year + Year \ 4 + D + (D > 48) + 1) Mod 7)
End Function

Sub dummy()
  
   Dim dummy As Variant
  
   dummy = Feiertage(2015)
  
   Range("A1:B" & UBound(dummy, 1) + 1) = dummy
End Sub

Die Jahreszahl muß hier leider immer im Code (dummy = Feiertage(2015)) geändert werden.

Ist es möglich, dass ich diese ändere indem ich auf dem Sheet Feiertage in der Spalte D2 das neue Jahr eintrage?

Wäre wie immer total dankbar für eure schnelle Hilfe.

VG Mario

Code strukturiert
?mage
to top
#2
Hallo Mario,

natürlich. Feiertage(Sheets("Feiertage").Range("D2").Value) .Value kann man meist weglassen.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
Mario
to top
#3
Hallo André,

hat super funktioniert 28.

Vilen Dank und noch einen schönen Sonntag.

VG Mario
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Kriterien für Feiertage AKGUSTI 35 921 16.02.2017, 20:08
Letzter Beitrag: AKGUSTI
  Feiertage zählen nur, wenn kein Sa oder So Papppa 2 161 21.01.2017, 08:17
Letzter Beitrag: Papppa
  Feiertage berücksichtigen Thomas78 20 438 17.01.2017, 10:33
Letzter Beitrag: Thomas78
  nur Kalenderwochen auflisten die keine Feiertage enthalten Kalkulon 17 579 03.01.2017, 09:33
Letzter Beitrag: Kalkulon
  Kalender feiertage nicht angezeigt delenn 5 215 29.12.2016, 13:47
Letzter Beitrag: Rabe
  Wochenende und Feiertage automatisch farbig und Nettoarbeitstage Robbie1985 1 218 18.09.2016, 16:09
Letzter Beitrag: WillWissen
Question Datum vergleichen und Anzahl Feiertage berechnen alpimd 3 354 25.07.2016, 20:05
Letzter Beitrag: alpimd
  Feiertage in Kalender eintragen Rabe 23 2.013 12.04.2016, 19:18
Letzter Beitrag: schauan
  Feiertage in Arbeitstabelle berücksichtigen Jürgen6810 8 1.506 14.05.2015, 19:01
Letzter Beitrag: schauan
  Feiertage anzeigen Lümmel 5 1.714 21.12.2014, 17:40
Letzter Beitrag: schauan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste