Hogyan illesszük be a dátumválasztót az Excelbe?
A legördülő naptár beszúrásához egy ActiveX vezérlőt fogunk használni , amely a „Microsoft dátum- és időválasztó vezérlő 6.0 (SP6)” .
Tegyük fel, hogy a vállalat alkalmazottainak adatait kell fenntartanunk. Számos olyan terület van, mint
- Emp kód
- Emp neve
- Emp csatlakozási dátum
- Emp Department
Az adatok MS Excelbe történő beviteléhez a következő formátumot hoztuk létre.

Az Emp Joining Date megadásához létre kell hoznunk egy legördülő menetrendet, hogy a felhasználó számára könnyebb legyen megadni a csatlakozási dátumokat.
A legördülő naptár létrehozásához az alábbi lépéseket kell megadni:
Be kell illesztenünk egy „ActiveX-vezérlőt”, amelynek neve „Microsoft Date and Time Picker Control 6.0 (SP6)” . A beszúráshoz a „Fejlesztő” „Vezérlők” csoportjában található „Beszúrás” parancsot fogjuk használni .
Ha a „Fejlesztő” fül nem látható, az alábbiakban bemutatjuk az azonos lépések láthatóvá tételéhez szükséges lépéseket.
- 1. lépés: A „Fájl” menüben válassza az „Opciók” lehetőséget

- 2. lépés: Megnyílik egy „Excel beállítások” nevű párbeszédpanel . Válassza a "Szalag testreszabása" lehetőséget a párbeszédpanel bal szélén. Jelölje be a „Fejlesztő” fül jelölőnégyzetét, majd kattintson az „OK” gombra.

- 3. lépés: Most láthatjuk a "Fejlesztő" fület a szalag végén.

- 4. lépés: Válassza az „További vezérlők” lehetőséget az ActiveX-vezérlők közül.

- 5. lépés: Válassza ki a listából a „Microsoft Date and Time Picker Control 6.0 (SP6)” elemet, majd kattintson az „OK” gombra.

- 6. lépés: Kattintson a munkalap bármely pontjára a legördülő naptár létrehozásához.

- 7. lépés: Kattintson a jobb gombbal a „Dátumválasztó” elemre, és válassza a „Tulajdonságok” lehetőséget a listából.

- 8. lépés: Változás az érték „False” a „True” a „négyzetet” tulajdonság, hogy a null értékek is elfogadhatók. Zárja be a „Tulajdonságok” párbeszédpanelt.

- 9. lépés: Kattintson a jobb gombbal ismét a Dátumválasztóra, és válassza a „Kód megtekintése” lehetőséget a kontextuális menüből.

- 10. lépés: A „Visual Basic Editor” alkalmazásban láthatjuk, hogy valamilyen kód már be van írva. Cserélje ki a kódot a következő kódra.
Kód:
Private Sub Worksheet_SelectionChange (ByVal Tar As As Range) with Sheet1.DTPicker1 .Height = 20 .Width = 20 Ha nem metszik egymást (Target, Range ("C: C")) akkor semmi .Visible = True .Top = Target.Top. Bal = Target.Offset (0, 1) .Bal .LinkedCell = Target.Adressress Other .Visible = False End If End End With End Sub

- 11. lépés: A kód első utasítása azt mondja az MS Excel Compiler-nek, hogy futtassa a kódot, amikor új cellát választanak (a Selection megváltozik). A kiválasztott cellát a Sub eljáráshoz „Célként” küldjük .
Private Sub Worksheet_SelectionChange (ByVal cél mint tartomány)
- 12. lépés: Ezek az állítások a Dátumválasztó magasságát és szélességét 20 pontra állítják az excelben. Megfigyelhető, hogy a 'With' operátort használtuk, így nem kell újra és újra a DTPicker1- re hivatkoznunk .
A Sheet1.DTPicker1 .Height = 20 .Width = 20
- 13. lépés: A következő „Ha” záradék azt a kritériumot állítja be, hogy ha a „C” oszlopban bármelyik cellát kiválasztja , akkor csak a Dátumválasztó válik láthatóvá. Az 'Intersect' függvényt használtuk, mivel ez a függvény ellenőrzi, hogy kiválasztottunk-e cellát a C oszlopban, majd ez a függvény visszaadja a címet; különben az érték nulla lenne.
Ha nem metszik egymást (Cél, tartomány ("C: C")) akkor semmi. Akkor látható. Igaz
- 14. lépés: A Dátumválasztó „Top” tulajdonságát megegyezik a Kiválasztott cella „Top” tulajdonságának értékével. Ez azt jelenti, hogy ez a kijelölt cella felső határával fog együtt járni.
.Top = Cél.Top
- 15. lépés: Ez az utasítás a Dátumválasztó bal tulajdonságát megegyezik a kijelölt cella következő jobb oldali cellájának tulajdonságával (A D oszlop bal szegélyének távolsága a munkalap bal szélső szélétől). A következő jobb oldali cella hivatkozásának megszerzéséhez az 'Offset' függvényt használtuk, 0-vel sor argumentumként és 1 oszlop argumentumként, mivel ez hivatkozást kap a következő oszlop cellájára.
.Bal = Cél. Eltolás (0, 1). Bal
- 16. lépés: Ez az utasítás összekapcsolja a Dátumválasztót a Cél cellával úgy, hogy melyik érték legyen kiválasztva a cellában megjelenő legördülő naptárban.
.LinkedCell = Cél.Cím
- 17. lépés: Az „Else” utasítás megmondja a fordítónak, hogy ne jelenítse meg a Dátumválasztót, ha a C oszlopban lévő cellák kivételével bármely cella ki van jelölve.
Egyéb .Látható = Hamis
- 18. lépés: Végül bezárjuk a „Ha” elemet.
Vége Ha
- 19. lépés: Végül be kell zárnunk a „With” -t.
Vége
- 20. lépés: Most az aleljárás befejeződik.
End Sub
Győződjön meg arról, hogy a fájlt az '.xlsm' kiterjesztéssel menti, mivel az elmenti az általunk írt VBA kódot, és akkor tudjuk futtatni ezt a kódot, ha a C oszlopban bármelyik cella kiválasztásra kerül.
Most, amikor a „C” oszlopban bármelyik cellát kijelöljük, a kiválasztott cella jobb felső sarkában egy legördülő menüben láthatunk egy naptárat. A legördülő naptárat a lefelé mutató nyílra kattintva nyithatjuk meg.

A kiválasztott hónapban a naptár bármelyik dátumára kell kattintanunk, hogy beírhassuk a dátumot a kijelölt cellába.

A hónapot az előzőre vagy a következőre változtathatjuk a naptár bal és jobb oldalán található nyílgombbal.

A hónapra kattintva is kiválaszthatunk egy hónapot a legördülő menüből.

Az évet úgy is megváltoztathatjuk, hogy rákattintunk az évre, majd a fel és le nyilakkal választjuk ki a kívántat.

Dolgok, amikre emlékezni kell
- A „Microsoft Date and Time Picker Control 6.0 (SP6)” nem érhető el az MS Excel 64 bites verziójában.
- A VBA kód megírása után el kell mentenünk a fájlt '.xlsm' (Excel Macro-Enabled Workbook) kiterjesztéssel; különben a VBA kód nem futna.