Wie erstellt man in Excel einen monatlichen oder jährlichen Kalender?
Manchmal müssen Sie in Excel schnell einen Kalender für einen bestimmten Monat oder ein bestimmtes Jahr erstellen – aber wie geht das am effizientesten? In diesem Tutorial erfahren Sie praktische Tricks, mit denen Sie im Handumdrehen einen monatlichen oder jährlichen Kalender in Excel erstellen können.
Erstellen eines monatlichen oder jährlichen Kalenders mithilfe einer Excel-Vorlage
Erstellen eines monatlichen Kalenders mithilfe von VBA
Einfaches Erstellen eines monatlichen oder jährlichen Kalenders mit Dauerkalender
Erstellen eines monatlichen oder jährlichen Kalenders mithilfe einer Excel-Vorlage
In Excel können Sie eine Kalendervorlage nutzen, um ganz einfach einen monatlichen oder jährlichen Kalender zu erstellen.
1. Klicken Sie in Excel 2010/2013 auf Datei > Neu bzw. in Excel 2007 auf die Office-Schaltfläche > Neu. Geben Sie dann im rechten Bereich des erscheinenden Fensters Kalender in die Suchmaske ein. Siehe Screenshot:
In Excel 2010/2013

In Excel 2007

2. Drücken Sie Enter. Daraufhin werden mehrere Kalendertypen im Fenster angezeigt. Wählen Sie den gewünschten Kalendertyp aus und klicken Sie im rechten Bereich auf Herunterladen (oder Erstellen). Siehe Screenshot:

Nun wird ein Kalender in einem neuen Arbeitsblatt erstellt. Siehe Screenshot:

Erstellen eines monatlichen Kalenders mithilfe von VBA
Manchmal benötigen Sie einen Ein-Monats-Kalender für einen bestimmten Monat – etwa Januar 2015. Mit der zuvor beschriebenen Methode kann es etwas mühsam sein, eine passende Kalendervorlage zu finden. Hier stelle ich Ihnen einen VBA-Code vor, der Ihnen das Erstellen eines maßgeschneiderten Monatskalenders erleichtert.
1. Drücken Sie Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen. Klicken Sie auf Einfügen > Modul, und fügen Sie anschließend den folgenden VBA-Code in das Fenster ein.
VBA: Erstellen Sie einen monatlichen Kalender.
Sub CalendarMaker()
' Unprotect sheet if had previous calendar to prevent error.
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
Scenarios:=False
' Prevent screen flashing while drawing calendar.
Application.ScreenUpdating = False
' Set up error trapping.
On Error GoTo MyErrorTrap
' Clear area a1:g14 including any previous calendar.
Range("a1:g14").Clear
' Use InputBox to get desired month and year and set variable
' MyInput.
MyInput = InputBox("Type in Month and year for Calendar ")
' Allow user to end macro with Cancel in InputBox.
If MyInput = "" Then Exit Sub
' Get the date value of the beginning of inputted month.
StartDay = DateValue(MyInput)
' Check if valid date but not the first of the month
' -- if so, reset StartDay to first day of month.
If Day(StartDay) <> 1 Then
StartDay = DateValue(Month(StartDay) & "/1/" & _
Year(StartDay))
End If
' Prepare cell for Month and Year as fully spelled out.
Range("a1").NumberFormat = "mmmm yyyy"
' Center the Month and Year label across a1:g1 with appropriate
' size, height and bolding.
With Range("a1:g1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
' Prepare a2:g2 for day of week labels with centering, size,
' height and bolding.
With Range("a2:g2")
.ColumnWidth = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
' Put days of week in a2:g2.
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
' Prepare a3:g7 for dates with left/top alignment, size, height
' and bolding.
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
' Put inputted month and year fully spelling out into "a1".
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
' Set variable and get which day of the week the month starts.
DayofWeek = WeekDay(StartDay)
' Set variables to identify the year and month as separate
' variables.
CurYear = Year(StartDay)
CurMonth = Month(StartDay)
' Set variable and calculate the first day of the next month.
FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Select Case DayofWeek
Case 1
Range("a3").Value = 1
Case 2
Range("b3").Value = 1
Case 3
Range("c3").Value = 1
Case 4
Range("d3").Value = 1
Case 5
Range("e3").Value = 1
Case 6
Range("f3").Value = 1
Case 7
Range("g3").Value = 1
End Select
' Loop through range a3:g8 incrementing each cell after the "1"
' cell.
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
' Do if "1" is in first column.
If cell.Column = 1 And cell.Row = 3 Then
' Do if current cell is not in 1st column.
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
' Stop when the last day of the month has been
' entered.
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
' Exit loop when calendar has correct number of
' days shown.
Exit For
End If
End If
' Do only if current cell is not in Row 3 and is in Column 1.
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
' Stop when the last day of the month has been entered.
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
' Exit loop when calendar has correct number of days
' shown.
Exit For
End If
End If
Next
' Create Entry cells, format them centered, wrap text, and border
' around days.
For x = 0 To 5
Range("A4").Offset(x * 2, 0).EntireRow.Insert
With Range("A4:G4").Offset(x * 2, 0)
.RowHeight = 65
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.WrapText = True
.Font.Size = 10
.Font.Bold = False
' Unlock these cells to be able to enter text later after
' sheet is protected.
.Locked = False
End With
' Put border around the block of dates.
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlLeft)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlRight)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _
Weight:=xlThick, ColorIndex:=xlAutomatic
Next
If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _
.Resize(2, 8).EntireRow.Delete
' Turn off gridlines.
ActiveWindow.DisplayGridlines = False
' Protect sheet to prevent overwriting the dates.
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
' Resize window to show all of calendar (may have to be adjusted
' for video configuration).
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
' Allow screen to redraw with calendar showing.
Application.ScreenUpdating = True
' Prevent going to error trap unless error found by exiting Sub
' here.
Exit Sub
' Error causes msgbox to indicate the problem, provides new input box,
' and resumes at the line that caused the error.
MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." _
& Chr(13) & "Spell the Month correctly" _
& " (or use 3 letter abbreviation)" _
& Chr(13) & "and 4 digits for the Year"
MyInput = InputBox("Type in Month and year for Calendar")
If MyInput = "" Then Exit Sub
Resume
End Sub Der VBA-Code stammt von dieser Webseite https://support.microsoft.com/en-us/kb/150774
2. Drücken Sie F5 oder klicken Sie auf die Schaltfläche Ausführen. Es erscheint ein Dialogfeld, in dem Sie aufgefordert werden, den gewünschten Monat einzugeben, für den ein Kalender erstellt werden soll. Siehe Screenshot:

3. Klicken Sie auf OK. Es wird nun ein Kalender für Januar 2015 im aktuellen Arbeitsblatt erstellt.

Bei den oben genannten Methoden gibt es jedoch einige Einschränkungen. Wenn Sie beispielsweise auf einmal einen Kalender von Januar bis Mai erstellen möchten, müssten Sie mit den beiden oben beschriebenen Methoden fünf separate Kalender erstellen. Daher stelle ich nun ein praktisches Hilfsprogramm vor, mit dem Sie dies schnell und einfach lösen können.
Einfaches Erstellen eines monatlichen oder jährlichen Kalenders mit Dauerkalender
Dauerkalender ist eines der leistungsstarken Hilfsprogramme in Kutools für Excel und ermöglicht Ihnen, sofort einen monatlichen oder jährlichen Kalender in Excel zu erstellen.
1. Klicken Sie auf KUTOOLS PLUS > Arbeitsblatt > Dauerkalender.
2. Geben Sie im erscheinenden Dialogfeld den gewünschten Monatszeitraum für den zu erstellenden Kalender an und klicken Sie auf Erstellen. Siehe Screenshot:

Dann wird ein neues Arbeitsblatt mit fünf Kalenderarbeitsblättern erstellt. Siehe Screenshot:

Tipp:
Wenn Sie nur einen Kalender für einen bestimmten Monat erstellen möchten, wählen Sie denselben Monat sowohl im Feld „Von“ als auch im Feld „Bis“ im Dialogfeld aus.
Klicken Sie hier, um weitere Informationen zu Dauerkalender zu erhalten
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor.Kutools für Excel bietet über 300 erweiterte Funktionen zur Steigerung der Produktivität und Zeit sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am dringendsten benötigen...
Office Tab bringt eine tabbasierte Oberfläche in Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie tabbasiertes Bearbeiten und Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters – statt jedes in einem separaten Fenster zu öffnen.
- Steigert Ihre Produktivität um 50 % und erspart Ihnen täglich Hunderte von Mausklicks!
Alle Kutools-Add-Ins – ein Installationsprogramm
Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook und PowerPoint sowie Office Tab Pro – ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.
- Alles-in-einem-Paket— Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro
- Ein Installationsprogramm, eine Lizenz— innerhalb weniger Minuten eingerichtet (MSI-fähig)
- Funktioniert besser zusammen— optimierte Produktivität über alle Office-Anwendungen hinweg
- 30-tägige Vollversion zum Testen— keine Registrierung, keine Kreditkarte erforderlich
- Bestes Preis-Leistungs-Verhältnis— sparen Sie im Vergleich zum Kauf einzelner Add-Ins