Excel Datumkiezer

Hoe een datumkiezer in Excel invoegen?

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

U kunt deze Excel-sjabloon voor datumkiezer hier downloaden - Excel-sjabloon voor datumkiezer

Stel dat we gegevens moeten bijhouden van werknemers 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 '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. Checkbox voor 'Developer' tab en klik op 'OK' .

  • Stap 3: Nu zien we het tabblad 'Ontwikkelaar' aan het einde van het lint.

  • Stap 4: Kies 'Meer besturingselementen' bij 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 (ByVa l Target As Range) Met 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 

  • 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 Subprocedure 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. Het kan worden opgemerkt dat we de operator 'With' 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 functie 'Intersect' 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 Datumkiezer wordt ingesteld als gelijk aan ' Top'- eigenschapswaarde van 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 verwijzing naar 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 deze code kunnen uitvoeren wanneer een cel is geselecteerd in de C-kolom.

Telkens wanneer we een cel in de 'C'-kolom selecteren, zien we een vervolgkeuzekalender in de rechterbovenhoek van de geselecteerde cel. We kunnen de vervolgkeuzekalender openen door op het pijltje naar beneden te klikken.

We moeten op een willekeurige datum in de kalender in de geselecteerde maand klikken om die datum in de geselecteerde cel in te voeren.

We kunnen de maand wijzigen naar vorige of volgende met de pijlknop aan de linker- en rechterkant van de kalender.

We kunnen ook op de maand klikken om een ​​maand uit de vervolgkeuzelijst te kiezen.

We kunnen het jaar ook wijzigen door op jaar te klikken en vervolgens de pijlen omhoog en omlaag te gebruiken om het gewenste jaar te kiezen.

Dingen om te onthouden

  • 'Microsoft Date and Time Picker Control 6.0 (SP6)' is niet beschikbaar voor de 64-bits versie van MS Excel.
  • After writing VBA code, we need to save the file with ‘.xlsm’ (Excel Macro-Enabled Workbook) extension otherwise VBA code would not run.