Avtomatsko vstavljanje datuma v obrazce worda
Avtomatsko vstavljanje datuma v obrazce worda
Kako lahko avtomatsko vstaviš v polja obrazca datume, ki se nanašajo na nek datum, ki je pravtako v nekem drugem vnosnem polju obrazca.
Tole pa po moje ne bo šlo brez majhnega makra. Postopek pa je sledeč. Na obrazec vnesite vnosno polje, ki mu nastavite sledeče lastnosti (Vrsta == Datum, omogočite vpis in zahtevajte preračun ob izhodu).
Potem na vsa mesta v dokumentu, kjer želite te datume vnesite dokumentne spremenljivke - Vstavljanje/Polje/DocVariable in jih poimenujet Datum1, Datum2....Datum7.
Nato v dokument skopirajte naslednji makro:
Pojdite nazaj na vnosno polje in postavite Makro ob izhodu na ta makro.
To je to! Opozoril bi vcas samo še na eno pomembno "malenkost". Word se "ne zna" sklicevati na ime polja, zato se je nanj potrebno sklicevati po indeksu.
To je pomembno pi gornji vrstici, kjer morate namesto 1 pač napisati zaporedno številko vašega vnosnega polja glede na celoten obrazec.
Potem na vsa mesta v dokumentu, kjer želite te datume vnesite dokumentne spremenljivke - Vstavljanje/Polje/DocVariable in jih poimenujet Datum1, Datum2....Datum7.
Nato v dokument skopirajte naslednji makro:
Koda: Izberi vse
'
' www.matjazev.net
' maj 2009
'
Sub makroObIzhodu()
Dim dat
dat = ActiveDocument.Fields(1).Result
ActiveDocument.Variables("datum1").Value = dat
ActiveDocument.Variables("datum2").Value = DateValue(dat + 1)
ActiveDocument.Variables("datum3").Value = DateValue(dat + 2)
ActiveDocument.Variables("datum4").Value = DateValue(dat + 3)
ActiveDocument.Variables("datum5").Value = DateValue(dat + 4)
ActiveDocument.Variables("datum6").Value = DateValue(dat + 5)
ActiveDocument.Variables("datum7").Value = DateValue(dat + 6)
ActiveDocument.Fields.Update
End Sub
To je to! Opozoril bi vcas samo še na eno pomembno "malenkost". Word se "ne zna" sklicevati na ime polja, zato se je nanj potrebno sklicevati po indeksu.
Koda: Izberi vse
dat = ActiveDocument.Fields(1).Result
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Sub makroObIzhodu()
Dim dat
dat = ActiveDocument.Fields(1).Result
ActiveDocument.Variables("datum1").Value = dat
--tu se ustavi-- ActiveDocument.Variables("datum2").Value = DateValue(dat + 1)
ActiveDocument.Variables("datum3").Value = DateValue(dat + 2)
ActiveDocument.Variables("datum4").Value = DateValue(dat + 3)
ActiveDocument.Variables("datum5").Value = DateValue(dat + 4)
ActiveDocument.Variables("datum6").Value = DateValue(dat + 5)
ActiveDocument.Variables("datum7").Value = DateValue(dat + 6)
ActiveDocument.Variables("datum8").Value = DateValue(dat + 7)
ActiveDocument.Fields.Update
End Sub
Imam več vnosnih polj. Prvo je to v katero vpišem željeni datum. Imam pa osem dokumentnih spremenljivk, ker zaključim z prvim dnem naslednjega tedna. Je potrebno dok.spremenljivke pisati z veliko Datum1...ali je vseeno?
Dim dat
dat = ActiveDocument.Fields(1).Result
ActiveDocument.Variables("datum1").Value = dat
--tu se ustavi-- ActiveDocument.Variables("datum2").Value = DateValue(dat + 1)
ActiveDocument.Variables("datum3").Value = DateValue(dat + 2)
ActiveDocument.Variables("datum4").Value = DateValue(dat + 3)
ActiveDocument.Variables("datum5").Value = DateValue(dat + 4)
ActiveDocument.Variables("datum6").Value = DateValue(dat + 5)
ActiveDocument.Variables("datum7").Value = DateValue(dat + 6)
ActiveDocument.Variables("datum8").Value = DateValue(dat + 7)
ActiveDocument.Fields.Update
End Sub
Imam več vnosnih polj. Prvo je to v katero vpišem željeni datum. Imam pa osem dokumentnih spremenljivk, ker zaključim z prvim dnem naslednjega tedna. Je potrebno dok.spremenljivke pisati z veliko Datum1...ali je vseeno?
... Ko že nič več ne pomaga, je pa potrebno preizkusiti lastno kodo... In napaka je v makru... Uporabite tale makro (bila je napaka pri formiranju datumov, saj sem seštevanje po pomoti prestavil v oklepaje...):
Koda: Izberi vse
'
' www.matjazev.net
' maj 2009
'
Sub makroObIzhodu()
Dim dat
dat = ActiveDocument.Fields(1).Result
ActiveDocument.Variables("datum1").Value = dat
ActiveDocument.Variables("datum2").Value = DateValue(dat) + 1
ActiveDocument.Variables("datum3").Value = DateValue(dat) + 2
ActiveDocument.Variables("datum4").Value = DateValue(dat) + 3
ActiveDocument.Variables("datum5").Value = DateValue(dat) + 4
ActiveDocument.Variables("datum6").Value = DateValue(dat) + 5
ActiveDocument.Variables("datum7").Value = DateValue(dat) + 6
ActiveDocument.Fields.Update
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Relativno preprosto (pač glede na že napisano kodo). V dokumentu potrebujete neko mesto, kamor boste tekst vstavili, (npr Field19):
Koda: Izberi vse
ActiveDocument.Variables("Field19").Value = InputBox(...)
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator