Como fazer calendário no Excel?

Como fazer calendário no Excel?

Como fazer calendário no Excel? Essa é uma dúvida muito comum entre usuários do editor de planilhas da Microsoft. Sabendo disso, a Max Planilhas decidiu preparar um passo a passo para ajudar e orientar você.

Fazer um calendário no Excel pode parecer intimidador à primeira vista, mas na verdade é uma tarefa relativamente simples e que pode ser realizada por qualquer pessoa, desde iniciantes até usuários avançados da ferramenta.

Para saber como fazer e esclarecer todas as suas dúvidas, continue conosco e acompanhe este artigo até o final.

Como fazer calendário no Excel [Passo a Passo]

Neste conteúdo, vamos mostrar como você pode fazer calendário no Excel utilizando código VBA, veja na sequência como funciona.

1.Habilite a Guia do Desenvolvedor

  • No menu “Arquivo”, Clique em “Opções”
  • Uma janela será aberta. Nela, acesse “Personalizar faixa de opções”
  • Habilite o menu “Desenvolvedor”, conforme mostra a imagem abaixo, e clique em OK;

Como fazer calendário no Excel?

Após seguir o passo a passo, observe que a “Guia Desenvolvedor” foi habilitada no Excel.

Sendo assim, aproveite para acessá-la e clique na opção “Visual Basic”.

2.Insira o código no Visual Basic

Na tela do Visual Basic, clique em “Inserir Módulo” conforme a imagem abaixo:

Logo em seguida, cole o código abaixo e clique em “Alt + Q”.

Sub Calendario()

 

       ‘ 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(“Informe o mês e ano do calendário”)

       ‘ 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”) = “Domingo”

       Range(“b2”) = “Segunda”

       Range(“c2”) = “Terça”

       Range(“d2”) = “Quarta”

       Range(“e2”) = “Quinta”

       Range(“f2”) = “Sexta”

       Range(“g2”) = “Sábado”

       ‘ 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(“Informe o mês e ano do calendário”)

       If MyInput = “” Then Exit Sub

       Resume

   End Sub

3.Insira o calendário na planilha

Na sequência, clique em “Macros” e logo em seguida em “Executar”, conforme demonstrado na imagem abaixo:

Como fazer calendário no Excel?

4.Forneça o mês e o ano do seu calendário

Agora, é só fornecer o mês e ano que você deseja no formato MM/AAAA e clicar em “OK” para obter o calendário do mês desejado.

Como fazer calendário no Excel de forma fácil

Se você achou o modelo anterior complicado, agora é hora de descobrir que existe uma forma mais fácil de fazer calendário no Excel.

Para isso, basta seguir as instruções abaixo e escolher um dos modelos pré-formatados que o próprio Excel oferece. Veja:

  1. Clique em “Arquivo”;
  2. Na sequência, clique em “Novo”;
  3. Na barra de pesquisa procure por “Calendário”;
  4. Selecione a opção que deseja e clique em “Criar”.

Com o Excel, você tem inúmeras alternativas e possibilidades à sua disposição.

Para outras dicas em Excel, clique aqui e acesse o nosso canal no Youtube.

 

 

Compartilhe no Facebook
Compartilhe no Twitter
Compartilhe no Linkedin
Compartilhe WhatsApp
Rolar para cima