Como inserir o selecionador de data no Excel?
Para inserir o calendário suspenso, usaremos um controle ActiveX, que é o 'Microsoft Date and Time Picker Control 6.0 (SP6)' .
Suponha que tenhamos que manter os dados dos funcionários de uma empresa. Existem vários campos como
- Código Emp
- Nome Emp
- Data de adesão Emp
- Departamento Emp
Para inserir dados no MS Excel, criamos o seguinte formato.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__2.png.webp)
Para inserir a data de adesão Emp, precisamos criar um calendário suspenso para que seja mais fácil para o usuário inserir as datas de adesão.
Para criar um calendário suspenso, as etapas são fornecidas abaixo -
Precisamos inserir um 'controle ActiveX' denominado 'Microsoft Date and Time Picker Control 6.0 (SP6)' . Para inserir, usaremos o comando 'Inserir' no grupo 'Controles' no 'Desenvolvedor'.
Se a guia 'Desenvolvedor' não estiver visível, a seguir estão as etapas a seguir para torná-la visível.
- Etapa 1: No menu 'Arquivo' , escolha 'Opções'
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__3.png.webp)
- Etapa 2: Uma caixa de diálogo chamada 'Opções do Excel' será aberta. Escolha 'Personalizar Faixa de Opções' na borda esquerda da caixa de diálogo. Marque a caixa de seleção da guia 'Desenvolvedor' e clique em 'OK'.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__4.png.webp)
- Etapa 3: agora, podemos ver a guia 'Desenvolvedor' no final da faixa de opções.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__5.png.webp)
- Etapa 4: Escolha 'Mais controles' em controles ActiveX.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__6.png.webp)
- Etapa 5: Escolha 'Microsoft Date and Time Picker Control 6.0 (SP6)' na lista e clique em 'OK'.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__7.png.webp)
- Etapa 6: clique em qualquer lugar da planilha para criar o calendário suspenso.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__8.png.webp)
- Etapa 7: Clique com o botão direito em 'Selecionador de data' e escolha 'Propriedades' na lista.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__9.png.webp)
- Passo 8: Altere o valor de 'False' para 'True' na propriedade 'CheckBox' para que valores nulos também sejam aceitos. Feche a caixa de diálogo 'Propriedades' .
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__10.png.webp)
- Etapa 9: Clique com o botão direito do mouse no Selecionador de data novamente e escolha 'Exibir código' no menu contextual.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__11.png.webp)
- Etapa 10: No 'Editor do Visual Basic' , podemos ver que algum código já foi escrito. Substitua o código pelo código a seguir.
Código:
Private Sub Worksheet_SelectionChange (ByVal Target As Range) With Sheet1.DTPicker1 .Height = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True .Top = Target.Top. Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Else .Visible = False End If End With End Sub
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__12.png.webp)
- Etapa 11: A primeira instrução no código diz ao compilador do MS Excel para executar o código sempre que uma nova célula for selecionada (a seleção é alterada). A célula selecionada é enviada para o procedimento Sub como 'Destino'.
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
- Etapa 12: essas instruções definem a altura e a largura do selecionador de data em 20 pontos no excel. Pode-se observar que usamos o operador 'With' para não precisarmos nos referir ao DTPicker1 repetidamente.
Com Sheet1.DTPicker1 .Height = 20 .Width = 20
- Etapa 13: a seguinte cláusula 'If' define os critérios de que, se qualquer célula for selecionada na coluna 'C' , somente o selecionador de data terá visibilidade. Usamos a função 'Intersect' porque esta função verifica se selecionamos alguma célula na coluna C, então esta função retornará o endereço; caso contrário, o valor seria nulo.
If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True
- Etapa 14: a propriedade 'Superior' do Selecionador de data é definida como igual ao valor da propriedade 'Superior' da célula selecionada. Isso significa que vai junto com a borda superior da célula selecionada.
.Top = Target.Top
- Etapa 15: Esta instrução define a propriedade esquerda do Selecionador de Data como igual à da próxima célula direita da célula selecionada (Distância da borda esquerda da coluna D da extremidade esquerda da planilha). Para obter a referência da próxima célula à direita, usamos a função 'Offset' com 0 como argumento de linha e 1 como argumento de coluna, pois isso obterá uma referência para a célula na próxima coluna.
.Left = Target.Offset (0, 1) .Left
- Etapa 16: esta instrução vincula o Selecionador de data à célula de destino para que qualquer valor seja selecionado no calendário suspenso que é exibido na célula.
.LinkedCell = Target.Address
- Etapa 17: A instrução 'Else' diz ao compilador para não exibir o Selecionador de Data quando qualquer célula, exceto aquela na coluna C, for selecionada.
Else .Visible = False
- Etapa 18: no final, fechamos o 'If'.
Fim se
- Etapa 19: Finalmente, precisamos fechar 'Com'
Terminar com
- Etapa 20: agora, o sub procedimento terminará.
End Sub
Certifique-se de salvar o arquivo com a extensão '.xlsm', pois ele salva o código VBA que escrevemos e poderemos executar esse código quando qualquer célula for selecionada na coluna C.
Now, whenever we select any cell in the ‘C’ column, we can see a drop-down calendar at the top right corner of the selected cell. We can open the drop-down calendar by clicking on the down arrow symbol.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__13.png.webp)
We need to click on any date in the calendar in the selected month to enter that date in the selected cell.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__14.png.webp)
We can change month to previous or next using the arrow button placed at the left and right side of the calendar.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__15.png.webp)
We can also click on the month to choose a month from the drop-down.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__16.png.webp)
We can also change year by clicking on year and then using up and down arrows to choose the required one.
![](https://cdn.know-base.net/5257627/excel_date_picker_how_to_insert_date_picker_calendar_in_excel__17.png.webp)
Things to Remember
- ‘Microsoft Date and Time Picker Control 6.0 (SP6)’ is not available for the 64-bit version of MS Excel.
- Depois de escrever o código VBA, precisamos salvar o arquivo com a extensão '.xlsm' (Pasta de trabalho habilitada para macro do Excel); caso contrário, o código VBA não seria executado.