Excel Datumkiezer - Hoe een datumkiezer (kalender) in Excel invoegen?

Hoe een datumkiezer in Excel invoegen?

Om een ​​vervolgkeuzelijst in te voegen, gebruiken we een ActiveX-besturingselement, dit is 'Microsoft Date and Time Picker Control 6.0 (SP6)' .

Stel dat we gegevens moeten bijhouden van medewerkers van een bedrijf. Er zijn verschillende velden zoals

  • Emp-code
  • Emp Naam
  • Emp toetredingsdatum
  • Emp afdeling

Om gegevens in MS Excel in te voeren, hebben we het volgende formaat gemaakt.

Om de Emp-toetredingsdatum in te voeren, moeten we een vervolgkeuzekalender maken zodat het voor de gebruiker gemakkelijker is om de toetredingsdatums in te voeren.

Om een ​​vervolgkeuzekalender te maken, worden de onderstaande stappen gegeven -

We moeten een 'ActiveX-besturingselement' invoegen met de naam 'Microsoft Date and Time Picker Control 6.0 (SP6)' . Om in te voegen, gebruiken we de opdracht 'Invoegen' onder de groep 'Besturing' in de 'Ontwikkelaar'.

Als het tabblad 'Ontwikkelaar' niet zichtbaar is, volgen hieronder de stappen die u moet volgen om hetzelfde zichtbaar te maken.

  • Stap 1: Kies onder het menu 'Bestand' voor 'Opties'
  • Stap 2: Er wordt een dialoogvenster met de naam 'Excel-opties' geopend. Kies 'Lint aanpassen' aan de linkerkant van het dialoogvenster. Selectievakje voor het tabblad 'Ontwikkelaar' en klik op 'OK'.
  • Stap 3: Nu zien we het tabblad 'Ontwikkelaar' aan het einde van het lint.
  • Stap 4: Kies 'Meer besturingselementen' van ActiveX-besturingselementen.
  • Stap 5: Kies 'Microsoft Date and Time Picker Control 6.0 (SP6)' uit de lijst en klik op 'OK'.
  • Stap 6: Klik ergens op het werkblad om de vervolgkeuzekalender te maken.
  • Stap 7: Klik met de rechtermuisknop op 'Datumkiezer' en kies 'Eigenschappen' uit de lijst.
  • Stap 8: Verander de waarde van 'False' naar 'True' voor 'CheckBox' eigenschap zodat ook null-waarden geaccepteerd kunnen worden. Sluit het dialoogvenster 'Eigenschappen' .
  • Stap 9: Klik nogmaals met de rechtermuisknop op Datumkiezer en kies 'Bekijk code' in het contextmenu.
  • Stap 10: In 'Visual Basic Editor' kunnen we zien dat er al code is geschreven. Vervang de code door de volgende code.

Code:

Private Sub Worksheet_SelectionChange (ByVal Target As Range) Met Sheet1.DTPicker1 .Height = 20 .Breedte = 20 Indien niet snijden (Target, Range ("C: C")) Is niets dan .Visible = True .Top = Target.Top. Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Else .Visible = False End If End With End Sub
  • Stap 11: De eerste instructie in de code vertelt de MS Excel Compiler om de code uit te voeren wanneer een nieuwe cel wordt geselecteerd (selectie is gewijzigd). De geselecteerde cel wordt als 'Doel' naar de Sub-procedure gestuurd .
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  • Stap 12: Deze instructies stellen de hoogte en breedte van de datumkiezer in op 20 punten in Excel. Opgemerkt kan worden dat we de ' With'- operator hebben gebruikt , zodat we niet steeds opnieuw naar DTPicker1 hoeven te verwijzen .
 Met Sheet1.DTPicker1 .Hoogte = 20 .Breedte = 20
  • Stap 13: De volgende 'If'- clausule stelt de criteria in dat als er een cel wordt geselecteerd in de ' C'- kolom, alleen de datumkiezer zichtbaar wordt. We hebben de 'Intersect'- functie gebruikt omdat deze functie controleert of we een cel in de C-kolom hebben geselecteerd, waarna deze functie het adres retourneert; anders zou de waarde null zijn.
If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True
  • Stap 14: 'Top'- eigenschap van Date Picker wordt ingesteld als gelijk aan de ' Top'- eigenschapswaarde van de geselecteerde cel. Dit betekent dat dit samengaat met de bovenrand van de geselecteerde cel.
.Top = Target.Top
  • Stap 15: Deze instructie stelt de linkereigenschap van de datumkiezer in als gelijk aan die van de volgende rechtercel van de geselecteerde cel (afstand van de linkerrand van de D-kolom vanaf de uiterste linkerkant van het werkblad). Om de referentie van de volgende rechtercel te krijgen, hebben we de functie 'Offset' gebruikt met 0 als rijargument en 1 als kolomargument, omdat dit een verwijzing naar de cel in de volgende kolom krijgt.
.Left = Doel.Offset (0, 1) .Links
  • Stap 16: Deze verklaring verbindt de datumkiezer met de doelcel, zodat elke waarde wordt geselecteerd in de vervolgkeuzekalender die in de cel wordt weergegeven.
.LinkedCell = Target.Address
  • Stap 17: De 'Else'-instructie vertelt de compiler om de datumkiezer niet weer te geven wanneer een cel behalve die in de C-kolom is geselecteerd.
Anders .Visible = False
  • Stap 18: Uiteindelijk sluiten we de 'If.'
Stop als
  • Stap 19: Eindelijk moeten we 'Met' afsluiten .
Eindigt met
  • Stap 20: Nu eindigt de subprocedure.
Einde Sub

Zorg ervoor dat we het bestand opslaan met de extensie '.xlsm' , omdat het de VBA-code opslaat die we hebben geschreven, en we kunnen deze code uitvoeren wanneer een cel is geselecteerd in de C-kolom.

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.

We need to click on any date in the calendar in the selected month to enter that date in the selected cell.

We can change month to previous or next using the arrow button placed at the left and right side of the calendar.

We can also click on the month to choose a month from the drop-down.

We can also change year by clicking on year and then using up and down arrows to choose the required one.

Things to Remember

  • ‘Microsoft Date and Time Picker Control 6.0 (SP6)’ is not available for the 64-bit version of MS Excel.
  • Na het schrijven van de VBA-code, moeten we het bestand opslaan met de extensie '.xlsm' (Excel Macro-Enabled Workbook); anders zou de VBA-code niet worden uitgevoerd.

Interessante artikelen...