Startseite

Feiertage in Urlaubsplaner eintragen

Mit diesem Makro können Feiertage als Kommentarfelder in den Urlaubsplaner eingefügt werden. Sie werden als kleines Kommentarfeld angezeigt. Der Urlaubsplaner befindet sich im Downloadbereich unter Beispieltabellen (Excel).
Option Explicit

Sub feiertage()
' Schreibt Feiertage in Kommentarfenster
' Ergänzung für Urlaubs- und Abwesenheitsplaner
' Klaus-Dieter Oppermann
' letzter Stand 31.07.2009 (Makro optimiert)
Dim sp As Integer
Dim r As Integer
Dim f As Integer
Dim s As Integer
Dim adr As String
Dim tg(300) As Long
Dim ft(300) As String
Dim ws(2) As String
Dim intSp As Integer
Dim rngBereich As Range
Dim Zahl As Long
    ws(1) = "1. Halbjahr"
    ws(2) = "2. Halbjahr"
    ' Feiertage einlesen
    For r = 4 To Worksheets("Bitte lesen").Range("A65536").End(xlUp).Row
        tg(r) = Worksheets("Bitte lesen").Cells(r, 2)
        ft(r) = Worksheets("Bitte lesen").Cells(r, 1)
    Next r
    ' alte Kommentare löschen
    For s = 1 To 2
        Worksheets(ws(s)).Activate
        Worksheets(ws(s)).Range("B3:GC3").Select
        Application.DisplayCommentIndicator = xlCommentIndicatorOnly
        Application.DisplayCommentIndicator = xlCommentAndIndicator
        Selection.ClearComments
        Worksheets(ws(s)).Cells(1, 1).Select
    Next s
    ' Ende löschen
    ' Feiertage in Kommentarfenster eintragen
    For f = 4 To r - 1
        If Month(CDate(tg(f))) < 7 Then s = 1 Else s = 2
        Worksheets(ws(s)).Activate
        Set rngBereich = Worksheets(ws(s)).Range("B3:GC3")
        Set rngBereich = Worksheets(ws(s)).Range("B3", rngBereich)
        intSp = Application.Match(tg(f), rngBereich, 0) + 1
        If IsNumeric(intSp) Then
            Worksheets(ws(s)).Cells(3, intSp).AddComment
            Worksheets(ws(s)).Cells(3, intSp).Comment.Visible = True
            Worksheets(ws(s)).Cells(3, intSp).Comment.Shape.Select True
            Worksheets(ws(s)).Cells(3, intSp).Comment.Text Text:="" & Chr(10) & ft(f) & Chr(10) & ""
            Selection.HorizontalAlignment = xlCenter
            Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
            Selection.ShapeRange.Fill.Visible = msoTrue
            Selection.ShapeRange.Fill.Solid
            Selection.Font.ColorIndex = 3
            Selection.Font.Bold = True
            Selection.ShapeRange.ScaleHeight 0.51, msoFalse, msoScaleFromTopLeft
            Worksheets(ws(s)).Cells(3, intSp).Comment.Shape.Select True
            Worksheets(ws(s)).Cells(3, intSp).Comment.Visible = False
            Worksheets(ws(s)).Cells(1, 1).Select
        End If
    Next f
End Sub

Code eingefügt mit: Excel Code Jeanie