Wie erstellt man einen monatlichen/jährlichen Kalender in Excel?
Manchmal müssen Sie einen bestimmten Monats- oder Jahreskalender in Excel erstellen. Wie können Sie das schnell lösen? Dieses Tutorial stellt Tricks vor, um schnell monatliche oder jährliche Kalender in Excel zu erstellen.
Monatlichen oder jährlichen Kalender mit Excel-Vorlage erstellen
Monatlichen Kalender mit VBA erstellen
Einfach monatlichen oder jährlichen Kalender mit Dauerkalender erstellen
Monatlichen oder jährlichen Kalender mit Excel-Vorlage erstellen
In Excel können Sie eine Kalendervorlage verwenden, um einen monatlichen oder jährlichen Kalender zu erstellen.
1. In Excel 2010/2013 klicken Sie auf Datei > Neu, in Excel 2007 klicken Sie auf Office-Schaltfläche > Neu, dann geben Sie im Suchfeld des sich öffnenden Fensters Kalender ein. Siehe Screenshot:
In Excel 2010/2013
In Excel 2007
2. Drücken Sie die Eingabetaste, dann werden mehrere Kalendertypen im Fenster aufgelistet. Wählen Sie den gewünschten Kalendertyp aus und klicken Sie auf Herunterladen (oder Erstellen) im rechten Bereich. Siehe Screenshot:
Jetzt ist ein Kalender in einer neuen Arbeitsmappe erstellt. Siehe Screenshot:
Monatlichen Kalender mit VBA erstellen
Manchmal müssen Sie einen Ein-Monats-Kalender für einen bestimmten Monat erstellen, wie z.B. Januar 2015. Es kann etwas schwierig sein, eine solche Kalendervorlage mit der oben genannten Methode zu finden. Hier stelle ich einen VBA-Code vor, der Ihnen hilft, einen spezifischen Monatskalender zu erstellen.
1. Drücken Sie die Tastenkombination Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen, klicken Sie auf Einfügen > Modul, dann kopieren und fügen Sie den folgenden VBA-Code in das Fenster ein.
VBA: Monatlichen Kalender erstellen.
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 die F5-Taste oder klicken Sie auf die Schaltfläche Ausführen, und ein Dialogfenster erscheint, das Sie auffordert, den spezifischen Monat einzugeben, für den Sie einen Kalender erstellen möchten. Siehe Screenshot:
3. Klicken Sie auf OK. Jetzt ist ein Januar-2015-Kalender im aktiven Arbeitsblatt erstellt.
Aber bei den oben genannten Methoden gibt es einige Einschränkungen. Zum Beispiel, wenn Sie einen Kalender von Januar bis Mai auf einmal erstellen möchten, müssen Sie den Kalender fünfmal mit den beiden oben genannten Methoden erstellen. Nun stelle ich ein praktisches Hilfsmittel vor, um dies schnell und einfach zu lösen.
Einfach monatlichen oder jährlichen Kalender mit Dauerkalender erstellen
Dauerkalender ist eines der leistungsstarken Hilfsmittel in Kutools für Excel, und es kann Ihnen helfen, schnell monatliche oder jährliche Kalender in Excel auf einmal zu erstellen.
1. Klicken Sie auf Kutools Plus > Arbeitsblatt > Dauerkalender.
2. Geben Sie im erscheinenden Dialogfenster die gewünschte Monatsdauer für den Kalender an und klicken Sie auf Erstellen. Siehe Screenshot:
Dann wird eine neue Arbeitsmappe mit fünf Kalenderarbeitsblättern erstellt. Siehe Screenshot:
Tipp:
Wenn Sie nur einen bestimmten Monatskalender erstellen möchten, wählen Sie einfach denselben Monat sowohl im Feld Von als auch im Feld Bis im Dialogfenster aus.
Klicken Sie hier, um mehr über Dauerkalender zu erfahren.
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!