S preprostim makrom je mogoče v dokument vstaviti datum ponedeljka trenutnega tedna.

Zadeva seveda ne bo rešljiva brez makra. A nič ne skrbite, je dokaj preprost. V sistem ga dodate tako, da v Wordu pritisnete Alt+F11, da odprete urejevalnik makrov, v njem izberete Insert > Module, nato pa v okno vpišete naslednji makro:


Sub ZadnjiPonedeljek()
'Vrne ponedeljek tekočega tedna.
Dim dtePonedeljek As Date
dtePonedeljek = IIf(Weekday(Date) = 1, Date - 6, _
Date - (Weekday(Date) - 2))
Selection.InsertBefore dtePonedeljek
End Sub

Nato makro shranite in se vrnite v dokument. V njem v opravilnem traku Ogled izberete Makri, izberete makro z imenom ZadnjiPonedeljek in ga zaženete. Na mestu, kjer je bil kazalec, se bo pojavil datum ponedeljka tedna, v katerem trenutno smo, ne glede na to, kateri dan v tednu je.

In kako zadeva deluje? Makro temelji na funkciji Weekday(). Ta vrne številko za vsak dan v tednu: nedelja = 1, ponedeljek = 2, … sobota = 7. Če je dan v tednu 1, torej nedelja, se od njega odšteje šest dni, saj nas zanima teden pred tem, in dobimo spet ponedeljek. To je jasno in tudi zapisano v četrti vrstici našega makra.

Kaj pa, če dan ni nedelja? V tem primeru pa je rešitev precej zanimiva. Vzemimo primer datuma 20. oktober 2011. Dan je bil četrtek. Kako dobiti ponedeljek? Tako, da od datuma odštejemo številko dneva v tednu, zmanjšano za dva. Tako dobimo vedno ponedeljek. Res? Vzemimo naš primer. Četrtek je, kar zadeva funkcijo Weekday(), peti dan v tednu. Po naši formuli moramo torej od datuma 20. odšteti četrtek, zmanjšan za dva, torej:

20 - (5 - 2) = 20 - 3 = 17

In 17. oktober je res bil ponedeljek. Pa zadevo preizkusimo še s petkom, 21. 10. 2011. Vidimo, da zadeva deluje: petek je šesti dan, torej moramo od datuma 21. odšteti (6 - 2), torej 4, kar da spet 17., kar je ponedeljek.

Moj mikro, Februar 2012 | Zoran Banovič |