Skip to main content

¿Cómo crear un calendario en Excel?

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

Un calendario de Excel te ayuda a llevar un seguimiento de eventos importantes, como cuando alguien comienza un nuevo trabajo o cuando algo necesita ser entregado. Hace que ver estas fechas sea fácil y claro. En esta guía, te mostraré cómo crear calendarios mensuales y anuales en Excel. Veremos el uso de plantillas para una configuración rápida y también cómo hacer uno desde cero para aquellos que desean más control. De esta manera, puedes mantenerte organizado, ya sea para el trabajo o para planes personales.

create a calendar

Crea un calendario anual utilizando Plantillas de Calendario de Excel

Crea rápidamente un calendario mensual o anual con Kutools para Excel

Crea un calendario mensual con código VBA


Crea un calendario anual utilizando Plantillas de Calendario de Excel

Con este método, debes asegurarte de que tu computadora esté conectada a la red, para que puedas descargar las Plantillas de Calendario.

1. Ve a la pestaña Archivo, haz clic en el botón Nuevo en el panel izquierdo, y haz clic en Calendarios desde las búsquedas sugeridas. Ver captura de pantalla:

click New button, and click Calendars

2. Selecciona una de las plantillas de calendario que te guste, haz doble clic sobre ella para crear el calendario anual.

 select one of the calendar templates

Resultado

the calendar is inserted


Crea rápidamente un calendario mensual o anual con Kutools para Excel

La herramienta Calendario Perpetuo de Kutools para Excel puede crear rápidamente un calendario mensual o anual personalizado en un nuevo libro de trabajo, y cada calendario mensual estará contenido en una nueva hoja de cálculo.

Kutools para Excel ofrece más de 300 funciones avanzadas para simplificar tareas complejas, potenciando la creatividad y la eficiencia. Integrado con capacidades de inteligencia artificial, Kutools automatiza las tareas con precisión, haciendo que la gestión de datos sea sencilla. Información detallada de Kutools para Excel...  Prueba gratuita...

Después de instalar Kutools para Excel, por favor haz clic en Kutools Plus > Hoja de Trabajo > Calendario Perpetuo. En el cuadro de diálogo emergente Calendario Perpetuo, por favor haz lo siguiente:

  • Para crear un calendario mensual, especifica los meses que deseas crear el calendario a través de la lista desplegable Desde y Hasta, y haz clic en Crear.

specify the months to create a monthly calendar

  • Para crear un calendario anual, especifica el año que deseas crear el calendario a través de la lista desplegable Desde y Hasta, y haz clic en Crear.

 specify the year  create a yearly calendar

Resultado
  • Un calendario mensual:

 A monthly calendar is inserted

  • Un calendario anual:

A yearly calendar is inserted

Consejo: Para usar esta función, primero debes instalar Kutools para Excel, por favor haz clic para descargar y tener una prueba gratuita de 30 días ahora.

Crea un calendario mensual con código VBA

Con el siguiente código VBA, puedes crear rápidamente un calendario mensual. Por favor, sigue estos pasos:

1. Presiona las teclas Alt + F11 para abrir la ventana Microsoft Visual Basic para Aplicaciones.

2. Aparecerá una nueva ventana. Haz clic en Insertar > Módulo, luego introduce los siguientes códigos en el módulo:

 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. Luego haz clic en el botón Ejecutar o presiona la tecla F5 para ejecutar la aplicación. Ahora aparecerá un cuadro de diálogo, puedes introducir el mes y el año en el cuadro en blanco.

 input the month and the year in the textbox

Resultado

 a monthly calendar is inserted