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

Ferien Start und Ende per VBA eintragen

Ferien Start und Ende per VBA eintragen
05.03.2020 07:01:17
Uwe
Hallöchen ihr Lieben :)
Die Datei, welche ihr hier seht, ist nur ein Teil eines größeren Komplexes, doch dieser Teil bereitet mir Kopfschmerzen, denn im Moment weiß ich nicht wie ich den Anfang und das Ende der Ferien eintragen kann per VBA oder per Funktion.
Klar einfach wäre es per Hand, aber ich möchte einfach nur den blauen Knopf drücken oder, wenn möglich, soll es automatisch geschehen, wenn bei C3 das Datum TT/MM/JAHR eingegeben wird.
Über eine Hilfe würde ich mich freuen. Bin leider noch nicht so fit in VBA programmieren.
Achja, die Feiertage werden schon per VBA eingetragen und die 1. der Monate geschieht über eine einfache Formel.
https://www.herber.de/bbs/user/135626.xlsx
Vielen lieben Dank
Uwe
PS.: Die

Sub für die Feiertage ist hier zu sehen.

Sub Feiertage()
Dim d As Integer
Dim Bereich As Range
Dim Zelle As Range
Dim Jahr As Date
Dim Neujahr As Date
Dim Karfreitag As Date
Dim Ostersonntag As Date
Dim Ostermontag As Date
Dim Maifeiertag As Date
Dim Himmelfahrt As Date
Dim Pfingstsonntag As Date
Dim Pfingstmontag As Date
Dim TagDeutscheEinheit As Date
Dim ErsterWeihnachtstag As Date
Dim ZweiterWeihnachtstag As Date
Dim Fronleichnam As Date
Dim Reformationstag As Date
Dim Bussbettag As Date
Jahr = DatePart("yyyy", Worksheets("Grundeingabe").Cells(4, 3).Value)
Neujahr = DateSerial(Jahr, 1, 1)
d = (((255 - 11 * (Jahr Mod 19)) - 21) Mod 30) + 21
Ostersonntag = DateSerial(Jahr, 3, 1) + d + (d > 48) + 6 - ((Jahr + Jahr \ 4 + d + (d > 48) + 1) _
Mod 7)
Maifeiertag = DateSerial(Jahr, 5, 1)
Karfreitag = Ostersonntag - 2
Ostermontag = Ostersonntag + 1
Himmelfahrt = Ostersonntag + 39
'Pfingstsonntag = Ostersonntag + 49
Pfingstmontag = Ostersonntag + 50
TagDeutscheEinheit = DateSerial(Jahr, 10, 3)
ErsterWeihnachtstag = DateSerial(Jahr, 12, 25)
ZweiterWeihnachtstag = DateSerial(Jahr, 12, 26)
'Fronleichnam = DateSerial(Jahr, 6, 23)
Reformationstag = DateSerial(Jahr, 10, 31)
Bussbettag = DateSerial(Jahr, 11, 22) - (DateSerial(Jahr, 11, 18) Mod 7)
Cells(21, 3) = Neujahr
Cells(23, 3) = Ostermontag
Cells(22, 3) = Karfreitag
Cells(24, 3) = Maifeiertag
Cells(25, 3) = Himmelfahrt
Cells(26, 3) = Pfingstmontag
Cells(27, 3) = TagDeutscheEinheit
Cells(28, 3) = Reformationstag
Cells(29, 3) = Bussbettag
Cells(30, 3) = ErsterWeihnachtstag
Cells(31, 3) = ZweiterWeihnachtstag
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ferien Start und Ende per VBA eintragen
05.03.2020 07:13:39
SF
Hola,
die Ferienzeiten werden festgelegt, die kann man nicht berechnen.
Gruß,
steve1da
AW: Ferien Start und Ende per VBA eintragen
05.03.2020 07:36:02
Uwe
Ich weiß, dass die Ferien festgelegt werden, doch die kann man bestimmt mit irgendeiner Verlinkung durch VBA eintragen lassen.
Grüßle Uwe
Und woher nehmen, wenn nicht stehlen? (owT)
05.03.2020 07:41:03
EtoPHG

AW: Und woher nehmen, wenn nicht stehlen? (owT)
05.03.2020 10:07:30
volti
Hallo Uwe,
hier mal eine Idie, woher und wie Du die Ferien (zunächst in eine Tabelle) bekommen kannst....
Vielleicht hilft es Dir ja weiter.
Option Explicit
Sub HoleFerienAusWEB()
 With ThisWorkbook.Sheets("Tabelle1")
  .Select
  .Cells.Clear
  LadeIETabelle3 .Range("$A$1"), "http://www.kalenderpedia.de/ferien/ferien-2020.html"
 End With
End Sub
Sub LadeIETabelle3(rZiel As Range, sUrl As String)
'Tabelle aus einer WEB-Anwendung kopieren (KHV Okt 2018)
 Dim oIE As Object, sArr() As String
 Dim iZeile As Long, iSpalte As Long, iAnzZl As Long, iAnzSp As Long
 Set oIE = CreateObject("InternetExplorer.application")
 oIE.Navigate2 sUrl
 oIE.Visible = False
 While Not oIE.ReadyState = 4: DoEvents: Wend
 With oIE.document.all.tags("table")(4)
  iAnzZl = .Rows.Length - 1
  iAnzSp = .Rows(0).Cells.Length - 1
  ReDim sArr(iAnzZl, iAnzSp)
  For iZeile = 0 To iAnzZl
   For iSpalte = 0 To iAnzSp
     sArr(iZeile, iSpalte) = .Rows(iZeile).Cells(iSpalte).innerText
   Next iSpalte
  Next iZeile
 End With
 rZiel.Resize(iAnzZl, iAnzSp).value = sArr()
 oIE.Quit
 Set oIE = Nothing
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Und woher nehmen, wenn nicht stehlen? (owT)
07.03.2020 21:02:15
Uwe
Huhuchen...
Danke für den Tip, hab es ausprobiert, aber leider kann ich innerhalb der Tabelle nicht auf die einzelnen Daten zugreifen um dann den Start oder das Ende automatisch einzutragen.
Ich werde wahrscheinlich bei der manuellen Eintragung bleiben. Alles andere funktioniert nun gut.
Jedoch bin ich gerade am Überlegen eine

Sub zu schreiben, welche das Verzeichnis durchschaut nach Dateien mit einem Dateinamen als der  _
aktuelle, zum Beispiel:
aktuelle Datei heißt: Dienstpläne - Urlaubsübersicht - 2020.xlsm
die neu generierte Datei würde dann: Dienstpläne - Urlaubsübersicht - 2021.xlsm
heißen.
Es sollte folgendermaßen funktionieren:
Die 

Sub durchsucht das Verzeichnis nach der "höheren" Datei, wenn das System keine gefunden hat,  _
dann soll eine neue generiert werden, wenn er eine findet, dann soll er die 

Sub verlassen. Im Moment sieht mein Code folgendermaßen aus, aber es funzt nicht so, wie es  _
soll:

Sub Test()
Dim fs As Object
Dim fVerz As Object
Dim fDatei As Object
Dim fdateien As Object
Dim strDat As String
Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.getFolder("f:\Programmieren")
Set fdateien = fVerz.Files
For Each fDatei In fdateien
If InStr(fDatei, "") 

Jemand vielleicht eine Idee?
Grüßle Uwe
Anzeige
AW: Ferien Start und Ende per VBA eintragen
10.03.2020 16:33:56
Dieter
Hallo Uwe,
du kannst die Ferien der einzelnen Bundesländer jeweils als ics-Datei von der folgenden Web-Site herunterladen:
https://www.ferienwiki.de/exports/de
In der Anlage füge ich dir eine Arbeitsmappe bei, in welcher per VBA ein Jahreskalender für ein auswählbares Bundesland erstellt wird, der neben den Feiertagen auch die Ferien des gewählten Bundeslandes enthält. Das Programm entnimmt die Ferientermine aus den zugehörigen ics-Dateien.
https://www.herber.de/bbs/user/135750.xlsm
Viele Grüße
Dieter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige