Skip to main content

Come creare un calendario in Excel?

Author: Tech Support Last Modified: 2025-08-06

Un calendario di Excel ti aiuta a tenere traccia di eventi importanti, come quando qualcuno inizia un nuovo lavoro o quando qualcosa deve essere consegnato. Rende facile e chiaro visualizzare queste date. In questa guida, ti mostrerò come creare calendari mensili e annuali in Excel. Esamineremo l'uso di modelli per una configurazione rapida e anche come crearne uno da zero per coloro che desiderano più controllo. In questo modo, puoi rimanere organizzato, sia per il lavoro che per i piani personali.

create a calendar

Crea un calendario annuale utilizzando Modelli di Calendario di Excel

Crea rapidamente un calendario mensile o annuale con Kutools per Excel

Crea un calendario mensile con il codice VBA


Crea un calendario annuale utilizzando Modelli di Calendario di Excel

Con questo metodo, devi assicurarti che il tuo computer sia connesso alla rete, in modo da poter scaricare i Modelli di Calendario.

1. Vai alla scheda File, clicca sul pulsante Nuovo nel riquadro sinistro, e clicca su Calendari dalle ricerche suggerite. Vedi screenshot:

click New button, and click Calendars

2. Seleziona uno dei modelli di calendario che ti piace, fai doppio clic su di esso per creare il calendario annuale.

 select one of the calendar templates

Risultato

the calendar is inserted


Crea rapidamente un calendario mensile o annuale con Kutools per Excel

Lo strumento Calendario Perpetuo di Kutools per Excel può creare rapidamente un calendario mensile o annuale personalizzato in un nuovo workbook, e ogni calendario mensile sarà contenuto in un nuovo foglio di lavoro.

Kutools per Excel offre oltre 300 funzionalità avanzate per semplificare compiti complessi, aumentando creatività ed efficienza. Integrato con capacità di intelligenza artificiale, Kutools automatizza le attività con precisione, rendendo la gestione dei dati senza sforzo. Informazioni dettagliate su Kutools per Excel... Prova gratuita...

Dopo aver installato Kutools per Excel, clicca su Kutools Plus > Foglio di lavoro > Calendario Perpetuo. Nella finestra di dialogo Calendario Perpetuo che appare, procedi come segue:

  • Per creare un calendario mensile, specifica i mesi per cui vuoi creare il calendario tramite gli elenchi a discesa Da e A, e clicca su Crea.

specify the months to create a monthly calendar

  • Per creare un calendario annuale, specifica l'anno per cui vuoi creare il calendario tramite gli elenchi a discesa Da e A, e clicca su Crea.

 specify the year  create a yearly calendar

Risultato
  • Un calendario mensile:

 A monthly calendar is inserted

  • Un calendario annuale:

A yearly calendar is inserted

Suggerimento: Per utilizzare questa funzione, devi prima installare Kutools per Excel, clicca per scaricare ed avere una prova gratuita di 30 giorni ora.

Crea un calendario mensile con il codice VBA

Con il seguente codice VBA, puoi creare rapidamente un calendario mensile. Procedi come segue:

1. Premi i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic per Applicazioni.

2. Verrà visualizzata una nuova finestra. Clicca su Inserisci > Modulo, quindi inserisci i seguenti codici nel modulo:

 Sub CalendarMaker()
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
Scenarios:=False
Application.ScreenUpdating = False
On Error GoTo MyErrorTrap
Range("a1:g14").Clear
MyInput = InputBox("Type in Month and year for Calendar ")
If MyInput = "" Then Exit Sub
StartDay = DateValue(MyInput)
If Day(StartDay) <> 1 Then
StartDay = DateValue(Month(StartDay) & "/1/" & _
Year(StartDay))
End If
Range("a1").NumberFormat = "mmmm yyyy"
With Range("a1:g1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
With Range("a2:g2")
.ColumnWidth = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
DayofWeek = Weekday(StartDay)
CurYear = Year(StartDay)
CurMonth = Month(StartDay)
FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
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
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
If cell.Column = 1 And cell.Row = 3 Then
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
Exit For
End If
End If
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
Exit For
End If
End If
Next
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
.Locked = False
End With
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
ActiveWindow.DisplayGridlines = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
Application.ScreenUpdating = True
Exit Sub
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 

3. Quindi clicca sul pulsante Esegui o premi il tasto F5 per eseguire l'applicazione. Ora apparirà una casella di richiesta, dove puoi inserire il mese e l'anno nella casella vuota.

 input the month and the year in the textbox

Risultato

 a monthly calendar is inserted