Hoe maak je een maandelijkse / jaarlijkse kalender in Excel?
Over enige tijd moet u in Excel een specifieke maand- of jaarkalender maken, hoe los u dit snel op? Deze tutorial introduceert de trucs om snel een maandelijkse of jaarlijkse kalender in Excel te maken.
Maak een maandelijkse of jaarlijkse kalender met Excel-sjabloon
Maak een maandelijkse kalender door VBA
Maak eenvoudig een maandelijkse of jaarlijkse kalender met Perpetual Calendar
Maak een maandelijkse of jaarlijkse kalender met Excel-sjabloon
In Excel kunt u een kalendersjabloon gebruiken om een maandelijkse of jaarlijkse kalender te maken.
1. Klik in Excel 2010/2013 op Dien in > New, klik in Excel 2007 op Office-knop > Newen typ vervolgens in het rechtergedeelte van het popping-venster kalender in de zoekmachine. Zie screenshot:
Excel 2010/2013
InExcel2007
2. druk op Enter, dan verschijnen er meerdere soorten agenda's in het venster. Selecteer een type agenda dat u nodig heeft en klik op Downloaden (of maken) in het rechterdeelvenster. Zie screenshot:
Nu wordt een kalender gemaakt in een nieuwe werkmap. Zie screenshot:
Maak een maandelijkse kalender door VBA
Soms moet u een kalender van één maand maken voor een bepaalde maand, zoals jan. 2015. Het kan moeilijk zijn om zo'n kalendersjabloon met bovenstaande methode te vinden. Hier introduceer ik een VBA-code om u te helpen bij het maken van een specifieke maandelijkse kalender.
1. druk op Alt + F11 sleutels om te openen Microsoft Visual Basic voor toepassingen venster klikt Invoegen > Module, kopieer en plak vervolgens onder VBA-code in het venster.
VBA: maak een maandelijkse 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
De VBA komt van dit web https://support.microsoft.com/en-us/kb/150774
2. druk op F5 toets of lopen knop, en er verschijnt een dialoogvenster om u eraan te herinneren de specifieke maand te typen die u nodig hebt om een kalender te maken, zie screenshot:
3. klikken OK. Nu wordt een kalender van januari 2015 gemaakt in het actieve blad.
Maar bij bovenstaande methoden zijn er enkele beperkingen, als u bijvoorbeeld in één keer een kalender van januari tot mei wilt maken, moet u de kalender vijf keer maken met de bovenstaande twee methoden. Nu introduceer ik een handig hulpprogramma om het snel en gemakkelijk op te lossen
Maak eenvoudig een maandelijkse of jaarlijkse kalender met Perpetual Calendar
Perpetual Calendar is een van de krachtige hulpprogramma's in Kutools for Excel, en het kan u helpen om snel in één keer een maand- of jaarkalender in Excel te maken.
Kutools for Excel, met meer dan 300 handige functies, maakt uw werk eenvoudiger. | ||
1. klikken Enterprise > Werkblad > Perpetual Calendar. zie screenshot:
2. Geef in het popping-dialoogvenster de maand op waarin u de kalender wilt maken en klik op creëren. Zie screenshot:
Vervolgens wordt een nieuwe werkmap gemaakt met vijf kalenderwerkbladen. Zie screenshot:
Tip:
Als u alleen een specifieke maandkalender wilt maken, hoeft u alleen maar dezelfde maand te selecteren in de tekstvakken Van en Tot in het dialoogvenster.
Klik hier voor meer informatie over de eeuwigdurende kalender
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!