Discussion:
Vervaldatum automatisch laten berekenen in veld invulformulier Wor
(te oud om op te antwoorden)
zoetsnoepje
2009-07-20 09:21:01 UTC
Permalink
Hoi allemaal,

Ik vraag me af hoe je in een factuur de vervaldatum automatisch laat
berekenen door middel van een invulformulier. Wat ik wil bereiken, is dat het
veld 'huidige datum + 15 dagen' berekent. Dus als de factuur op 20 juli
gemaakt wordt, wil ik dat er onderaan in de vervaldatum automatisch '4
augustus 2009' (of beter: 4/08/2009) komt te staan. Bovenaan de factuur staat
er reeds een veld waarop de huidige datum al in staat, en dit veld (of
tekstvak) heb ik 'text9' genoemd.

Kan iemand mij a.u.b. vertellen hoe ik dat gefixt krijgt? Ik heb al overal
gezocht, in help, in microsoft online help, gewoon door te surfen, ... maar
niks gevonden.

Alvast heel hard bedankt!
Dave
2009-07-20 11:21:01 UTC
Permalink
zoetsnoepje,

Wat ik hier eerder heb gelezen, is dat dit alleen mogelijk is met behulp van
Excel. Je kunt met Kopieren en Plakken Speciaal de datum uit je
brief/formulier overnemen in Excel. In een volgende cel (in Excel) tel je bij
die eerste cel 15 op en zorgt dat die cel een datum format krijgt. Vervolgens
kopieer je dit en met Plakken Speciaal (in Word) plak je het resultaat weer
terug. Al naar gelang welke versie van Word je hebt, wordt de formattering
(lettertype, lettergrootte, achtergrond kleur, kader) van de cel uit Excel
wel of niet meegenomen. Even experimenteren hoe je plakt en daar valt uit te
komen.

Wellicht is het via een macro handiger te doen, daar heb ik geen kaas van
gegeten. Anderen wellicht wel.

Misschien is dit een handigere oplossing. Ik maak regelmatig een agenda voor
een vergadering die de volgende dag plaatsvind. In Word (2003 en eerder) is
het niet mogelijk om de datum van morgen automatisch te plaatsen. In Excel
heb ik een bestandje met alleen maar: =NU()+1 in een cel. Deze cel plak ik op
de hierboven beschreven manier in mijn sjabloon voor deze agenda en dit werkt
perfect (tenzij ik na middernacht de agenda afdruk). Misschien is dat voor
jou een optie?

David
Post by zoetsnoepje
Hoi allemaal,
Ik vraag me af hoe je in een factuur de vervaldatum automatisch laat
berekenen door middel van een invulformulier. Wat ik wil bereiken, is dat het
veld 'huidige datum + 15 dagen' berekent. Dus als de factuur op 20 juli
gemaakt wordt, wil ik dat er onderaan in de vervaldatum automatisch '4
augustus 2009' (of beter: 4/08/2009) komt te staan. Bovenaan de factuur staat
er reeds een veld waarop de huidige datum al in staat, en dit veld (of
tekstvak) heb ik 'text9' genoemd.
Kan iemand mij a.u.b. vertellen hoe ik dat gefixt krijgt? Ik heb al overal
gezocht, in help, in microsoft online help, gewoon door te surfen, ... maar
niks gevonden.
Alvast heel hard bedankt!
zoetsnoepje
2009-07-20 18:14:01 UTC
Permalink
Hoi Dave,

Allereerst bedankt voor je snelle antwoord!

Helaas moet ik bekennen dat ik niet goed begrijp wat je bedoelt, het
kopiëren en plakken van de cel uit Excel is niet gelukt. De NU()- functie
evenmin, dan geeft men een !Syntaxisfout, ( . Ik had al geprobeerd om
VANDAAG() te gebruiken, maar ook zonder succes. Ik weet echt niet wat het
probleem is :s

zoetsnoepje
Post by Dave
zoetsnoepje,
Wat ik hier eerder heb gelezen, is dat dit alleen mogelijk is met behulp van
Excel. Je kunt met Kopieren en Plakken Speciaal de datum uit je
brief/formulier overnemen in Excel. In een volgende cel (in Excel) tel je bij
die eerste cel 15 op en zorgt dat die cel een datum format krijgt. Vervolgens
kopieer je dit en met Plakken Speciaal (in Word) plak je het resultaat weer
terug. Al naar gelang welke versie van Word je hebt, wordt de formattering
(lettertype, lettergrootte, achtergrond kleur, kader) van de cel uit Excel
wel of niet meegenomen. Even experimenteren hoe je plakt en daar valt uit te
komen.
Wellicht is het via een macro handiger te doen, daar heb ik geen kaas van
gegeten. Anderen wellicht wel.
Misschien is dit een handigere oplossing. Ik maak regelmatig een agenda voor
een vergadering die de volgende dag plaatsvind. In Word (2003 en eerder) is
het niet mogelijk om de datum van morgen automatisch te plaatsen. In Excel
heb ik een bestandje met alleen maar: =NU()+1 in een cel. Deze cel plak ik op
de hierboven beschreven manier in mijn sjabloon voor deze agenda en dit werkt
perfect (tenzij ik na middernacht de agenda afdruk). Misschien is dat voor
jou een optie?
David
jan
2009-07-20 11:48:54 UTC
Permalink
zoetsnoepje,

Deze combinatie van velden, die verwijst naar het formulierveld (de bladwijzer)
Text9, maakt dat mogelijk:

{ QUOTE
{ SET Delay 14}
{ SET a{=INT((14-{ Text9 \@ M })/12)} }
{ SET b{={ Text9 \@ yyyy } +4800-a } }
{ SET c{={ Text9 \@ M } +12*a-3}}
{ SET d{ Text9 \@ d} }
{ SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-
INT(b/100)+INT(b/400)-32045+INT(Delay)} }
{ SET e{=INT((4*(jd+32044)+3)/146097)} }
{ SET f{=jd+32044-INT(146097*e/4)} }
{ SET g{=INT((4*f+3)/1461)} }
{ SET h{=f-INT(1461*g/4)} }
{ SET i{=INT((5*h+2)/153)} }
{ SET dd{=h-INT((153*i+2)/5)+1}}
{ SET mm{=i+3-12*INT(i/10)} }
{ SET yy{=100*e+g-4800+INT(i/10)} }
{=mm*10^4+dd*10^6+yy \# "00'-'00'-'0000"} \@ "dd-MM-yyyy"}



en als bij afdrukken de velden worden bijgewerkt, dan wordt deze berekening ook
uitgevoerd bij afdrukken (of bijwerken met F9 als het veld in een onbeveiligd deel
van het document staat)

Een veld kun je invoeren doormiddel van de sneltoets Ctrl+F9.

Je krijgt dan de accolades, zoals boven, waartussen de betreffende tekst moet worden
gezet.



Jan
Dave
2009-07-20 13:45:01 UTC
Permalink
Jan,

Tjonge! Geen wonder dat het advies dat ik kreeg was: link maar naar Excel.
I snap redelijk veel van dergelijke formules, maar verdwaal op een gegeven
moment helemaal in dit! Havo Wiskunde dan ook gehaald met een zesje EN lang
geleden. :-)

David
Post by Dave
zoetsnoepje,
Deze combinatie van velden, die verwijst naar het formulierveld (de bladwijzer)
{ QUOTE
{ SET Delay 14}
{ SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-
INT(b/100)+INT(b/400)-32045+INT(Delay)} }
{ SET e{=INT((4*(jd+32044)+3)/146097)} }
{ SET f{=jd+32044-INT(146097*e/4)} }
{ SET g{=INT((4*f+3)/1461)} }
{ SET h{=f-INT(1461*g/4)} }
{ SET i{=INT((5*h+2)/153)} }
{ SET dd{=h-INT((153*i+2)/5)+1}}
{ SET mm{=i+3-12*INT(i/10)} }
{ SET yy{=100*e+g-4800+INT(i/10)} }
en als bij afdrukken de velden worden bijgewerkt, dan wordt deze berekening ook
uitgevoerd bij afdrukken (of bijwerken met F9 als het veld in een onbeveiligd deel
van het document staat)
Een veld kun je invoeren doormiddel van de sneltoets Ctrl+F9.
Je krijgt dan de accolades, zoals boven, waartussen de betreffende tekst moet worden
gezet.
Jan
jan
2009-07-20 14:49:41 UTC
Permalink
David,

In't kort komt het neer op omzetten van de te bewerken datum (is tekst) naar de
"julian date" (is een getal).
Daarbij kan dan het aantal te verschuiven dagen (Delay) worden opgeteld waarna de
nieuwe "julian date" teruggerekend moet worden naar een (voor ons bruikbare) datum
(tekst).

En zeker, het is een ingewikkeld uitziend geheel, maar één keer ingevoerd werkt het
wel of je het nu elke keer helemaal begrijpt wat er gebeurd of niet.
Per slot weet ik ook niet wat er 'precies' gebeurd bij het linken naar Excel.

Wie weet heeft vraagsteller er wat aan en anders wellicht wat aan jouw voorstel.

Jan
zoetsnoepje
2009-07-20 18:18:01 UTC
Permalink
Wooow, dit is een beetje ver buiten van wat ik ken van Word... Ik begrijp
amper wat er staat en heb dan maar blindelings heel de boel gekopieerd en in
m'n veld gezet tussen de accolades. Dan bleef de formule erin staan, ook al
deed ik F9. Dan heb ik de accolade voor QUOTE weggedaan, aangezien er dan al
eentje stond (die met ctrl F9), maar dan krijg ik " Fout! Cijfer verwacht. "

Euh? :s
Post by Dave
zoetsnoepje,
Deze combinatie van velden, die verwijst naar het formulierveld (de bladwijzer)
{ QUOTE
{ SET Delay 14}
{ SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-
INT(b/100)+INT(b/400)-32045+INT(Delay)} }
{ SET e{=INT((4*(jd+32044)+3)/146097)} }
{ SET f{=jd+32044-INT(146097*e/4)} }
{ SET g{=INT((4*f+3)/1461)} }
{ SET h{=f-INT(1461*g/4)} }
{ SET i{=INT((5*h+2)/153)} }
{ SET dd{=h-INT((153*i+2)/5)+1}}
{ SET mm{=i+3-12*INT(i/10)} }
{ SET yy{=100*e+g-4800+INT(i/10)} }
en als bij afdrukken de velden worden bijgewerkt, dan wordt deze berekening ook
uitgevoerd bij afdrukken (of bijwerken met F9 als het veld in een onbeveiligd deel
van het document staat)
Een veld kun je invoeren doormiddel van de sneltoets Ctrl+F9.
Je krijgt dan de accolades, zoals boven, waartussen de betreffende tekst moet worden
gezet.
Jan
Flip
2009-07-21 09:30:18 UTC
Permalink
Zoetsnoepje,
Toch doet dit precies wat je wilt. Word heeft hier helaas (nog?) geen andere
oplossing voor.

Het is niet nodig dat je precies begrijpt wat er gebeurt. Het is wel
belangrijk dat je alles nauwkeurig overneemt, ik heb 'm getest, er zitten
geen tikfouten in.
Wel heel belangrijk zijn de accolades (begin- en eindcode van een veld, die
moet je niet typen of kopieren. Je moet ze echt allemaal maken met CTRL+F9.
Wat hier gebeurt is dat er binnen het veld meer velden worden genest. Met
alle berekeningen wordt het één lang veld.
Om het leesbaar te houden, druk Shift+Enter (regel afbreken) om gelijk te
blijven aan het voorbeeld.

Een stukje stap voor stap, doe rustig aan, pak er een kopje koffie bij:

Begin dus met 1x Ctrl+F9 en je ziet meteen de tekens met de cursor er
tussen.
Tik dan het eerste stukje tekst: QUOTE
Dan opnieuw Ctrl+F9 om het eerste veld te nesten
Tussen de nieuwe tekens tik je SET Delay 14
Er staan nu twee sluit-accolades, ga uit het geneste veld met pijltje naar
rechts en druk dan Shift+Enter waarmee je de laatste accolade naar de
volgende regel duwt.
Nu komt er een diepere nesting: druk weer Ctrl+F9 en tik SET a
Dan weer Ctrl+F9 en tik =INT((14-
Opnieuw Ctrl+F9 en tik Text9 \@ M en ga met pijlrechts dit veld uit en dan
tikken )/12
Dan staan er maar liefst 3 sluit-accolades. Met pijl rechts gaan tot er nog
een over is en dan met Shift+Enter die laatse weer naar de volgende regel
duwen.
Nu weer Ctrl+F9 nieuw veld maken, tik SET b, Ctrl+F9 dan = en weer Ctrl+F9

Om tikwerk te besparen en vergissingen te voorkomen: selecteer steeds die
stukjes tekst waar GEEN accolades in staan en kopieer en plak die stukje
voor stukje naar hun plek.
Let goed op waar spaties of juist geen spaties staan.

Staat alles er eenmaal druk dan ALT+F9 daarmee verberg je de code.
Heb je al een datum in de bladwijzer, Text9 staan?
Dan (bijvoorbeeld) document selecteren met Ctrl+A en velden bijwerken met F9

Je koffie is misschien koud geworden en de zon is al onder gegaan, maar als
je je nergens vergist hebt, staat er nu wel degelijk een datum in de
toekomst en heb je iets wat weinig anderen hebben. Het getal achter SET
Delay is het aantal dagen.

Flip
Post by zoetsnoepje
Wooow, dit is een beetje ver buiten van wat ik ken van Word... Ik begrijp
amper wat er staat en heb dan maar blindelings heel de boel gekopieerd en in
m'n veld gezet tussen de accolades. Dan bleef de formule erin staan, ook al
deed ik F9. Dan heb ik de accolade voor QUOTE weggedaan, aangezien er dan al
eentje stond (die met ctrl F9), maar dan krijg ik " Fout! Cijfer verwacht. "
Euh? :s
Post by Dave
zoetsnoepje,
Deze combinatie van velden, die verwijst naar het formulierveld (de bladwijzer)
{ QUOTE
{ SET Delay 14}
{ SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-
INT(b/100)+INT(b/400)-32045+INT(Delay)} }
{ SET e{=INT((4*(jd+32044)+3)/146097)} }
{ SET f{=jd+32044-INT(146097*e/4)} }
{ SET g{=INT((4*f+3)/1461)} }
{ SET h{=f-INT(1461*g/4)} }
{ SET i{=INT((5*h+2)/153)} }
{ SET dd{=h-INT((153*i+2)/5)+1}}
{ SET mm{=i+3-12*INT(i/10)} }
{ SET yy{=100*e+g-4800+INT(i/10)} }
en als bij afdrukken de velden worden bijgewerkt, dan wordt deze berekening ook
uitgevoerd bij afdrukken (of bijwerken met F9 als het veld in een onbeveiligd deel
van het document staat)
Een veld kun je invoeren doormiddel van de sneltoets Ctrl+F9.
Je krijgt dan de accolades, zoals boven, waartussen de betreffende tekst moet worden
gezet.
Jan
jan
2009-07-21 10:03:35 UTC
Permalink
Flip,

Jouw duidelijke handleiding laat inderdaad zien dat het een aardige klus is om één
en ander ingevoerd te krijgen.
Om de koffie toch niet te koud te laten worden zou je gebruik kunnen maken van de
link die ik net in m'n laatste bericht achterliet.

(zelf heb ik dit soort zaken gehaald uit het boek Word Hacks, Andrew Savikas,
O'Reilly, 2005 waarbij ook voorbeeldbestanden (vergelijkbaar met bovengenoemde link)
in staan)

Jan
Flip
2009-07-21 12:22:28 UTC
Permalink
Jan,
Normaal ben ik hier niet zo veel mee bezig maar bij gelegenheid is het heel
leuk er nog eens in te duiken. Het gaat mij ook te ver om deze constructies
zelf te maken, er zijn inderdaad voorbeelden genoeg.
Hopelijk komt 'Zoetsnoepje' er nu wel uit.
En voor alle nieuwsgierigen:
http://word.mvps.org/FAQs/index.htm

Bedankt,
Flip
Post by jan
Flip,
Jouw duidelijke handleiding laat inderdaad zien dat het een aardige klus
is om één en ander ingevoerd te krijgen.
Om de koffie toch niet te koud te laten worden zou je gebruik kunnen maken
van de link die ik net in m'n laatste bericht achterliet.
(zelf heb ik dit soort zaken gehaald uit het boek Word Hacks, Andrew
Savikas, O'Reilly, 2005 waarbij ook voorbeeldbestanden (vergelijkbaar met
bovengenoemde link) in staan)
Jan
jan
2009-07-21 09:38:37 UTC
Permalink
zoetsnoepje,

De accolades zoals ze in de tekst staan stellen per paar een veld voor.
Dat betekent dat je elk paar accolades inbrengt met Ctrl+F9 en de betreffende tekst
tussen de veldaccolades invoert. Het betreffen geneste velden dus binnen het ene
veld komen andere velden voor.
Maar ik ben het met jouw en Dave eens dat het wel wat erg uitbundig is allemaal.

Als je wilt kan ik je een bestand sturen waarin het veld is verwerkt.
Dan zou je even je (verbasterde) mailadres hier moeten achterlaten.

Voor de rest, er zijn sites waar dit soort zaken uitgewerkt wordt, er werd hier
laatst naar één verwezen, maar ik weet niet meer welke.
Misschien was het deze, daar vind je o.a. het bestand DateCalc.Zip met veel
uitgewerkte mogelijkheden met datumberekeningen .m.b.v. velden:
http://www.gmayor.com/downloads.htm

Jan
zoetsnoepje
2009-07-21 20:39:01 UTC
Permalink
Hoi Jan en Flip,

Ook bedankt voor jullie snelle antwoorden en hulp! Ik ben nog maar net
thuis, maar ik ga me daar morgen mee bezig houden. Ik zal het wel zonder
koffie moeten doen, aangezien ik dat niet lekker vind ;) Maar laten we hopen
dat ik het zal kunnen laten werken; bedankt voor de 'stap voor stap' hulp. En
als het toch niet lukt (ik ben duidelijk niet zo handig met die dingen als
jullie), Jan, dan zal ik je inderdaad mijn mailadres geven, dan kan ik zien
hoe de code nu juist moet worden ingegeven. Van het moment ik erachter kom
wat 'verbasterd' is ;)

Groetjes, zoetsnoepje
Dave
2009-07-22 07:46:03 UTC
Permalink
zoetsnoepje,

Je bent duidelijk geen "computer geek", want die leven van koffie! :-)

David
Post by zoetsnoepje
Hoi Jan en Flip,
Ook bedankt voor jullie snelle antwoorden en hulp! Ik ben nog maar net
thuis, maar ik ga me daar morgen mee bezig houden. Ik zal het wel zonder
koffie moeten doen, aangezien ik dat niet lekker vind ;) Maar laten we hopen
dat ik het zal kunnen laten werken; bedankt voor de 'stap voor stap' hulp. En
als het toch niet lukt (ik ben duidelijk niet zo handig met die dingen als
jullie), Jan, dan zal ik je inderdaad mijn mailadres geven, dan kan ik zien
hoe de code nu juist moet worden ingegeven. Van het moment ik erachter kom
wat 'verbasterd' is ;)
Groetjes, zoetsnoepje
zoetsnoepje
2009-07-24 19:21:01 UTC
Permalink
Haha, daar heb je gelijk in!
Post by Dave
zoetsnoepje,
Je bent duidelijk geen "computer geek", want die leven van koffie! :-)
David
Post by zoetsnoepje
Hoi Jan en Flip,
Ook bedankt voor jullie snelle antwoorden en hulp! Ik ben nog maar net
thuis, maar ik ga me daar morgen mee bezig houden. Ik zal het wel zonder
koffie moeten doen, aangezien ik dat niet lekker vind ;) Maar laten we hopen
dat ik het zal kunnen laten werken; bedankt voor de 'stap voor stap' hulp. En
als het toch niet lukt (ik ben duidelijk niet zo handig met die dingen als
jullie), Jan, dan zal ik je inderdaad mijn mailadres geven, dan kan ik zien
hoe de code nu juist moet worden ingegeven. Van het moment ik erachter kom
wat 'verbasterd' is ;)
Groetjes, zoetsnoepje
zoetsnoepje
2009-07-24 20:10:03 UTC
Permalink
Hoi heren,

Vandaag heb ik (zonder koffie) de formule stukje per stukje ingegeven.
Jammer genoeg (maar niet geheel tot mijn verbazing) mislukte het blijkbaar: "
!Onverwacht einde formule " kwam er tevoorschijn toen ik ALT+F9 deed. Ik heb
de formule zo'n vijf keer nagekeken, en heb de eerste paar keer overbodige
spaties weggedaan, maar telkens bleef de uitkomst dezelfde. Weten jullie wat
dat betekent of wat ik verkeerd gedaan heb?

Ik heb wel gemerkt dat er na de laatste regel (die dus eindigt met
"dd-MM-yyyy") twee sluit-accolades staan, en dat dat niet het geval is in de
de formule die Jan me gegeven heeft. Maar als ik de ene wil verwijderen,
wordt de hele laatste regel verwijderd, en als ik de andere wil deleten, is
dat zelfs de hele formule die mee verwijderd wordt. Ligt de fout daaraan? Wat
kan ik daaraan doen?

Alvast bedankt,
zoetsnoepje
jan
2009-07-24 21:00:29 UTC
Permalink
zoetsnoepje,

Je bent blijkbaar al aardig op weg.
Maar over de foutmelding is nauwelijks iets zinnigs te zeggen als je jouw
ingebrachte zaken niet kunt zien en vergelijken met het voorschrift.
Het is zaak om de ingebrachte zaken precies over te nemen.

Overigens staat m'n aanbod nog van het te sturen bestandje.
Daartoe kun je je mailadres hier zodanig verbasterd achter laten dat het door een
lezer herkend zou moeten kunnen worden maar door een automaat (waarschijnlijk) niet:
zoetsnoepjeBIJgmailPUNTnl bijvoorbeeld
of
zoetsnoepje(Dit verwijderen)@gmail(Dit weghalen)PUNTnl

Jan
zoetsnoepje
2009-07-27 10:42:07 UTC
Permalink
Aha, ok. Dan zal ik inderdaad even mijn e-mailadres geven. Je had het bijna
juist ;) zoetsie AT gmail PUNT com

Alvast hartelijk bedankt, hopelijk kan ik er dan wat aan uit als ik het
gewoon kan kopiëren van doc naar doc.

Groetjes,
zoetsnoepje
Post by Dave
zoetsnoepje,
Je bent blijkbaar al aardig op weg.
Maar over de foutmelding is nauwelijks iets zinnigs te zeggen als je jouw
ingebrachte zaken niet kunt zien en vergelijken met het voorschrift.
Het is zaak om de ingebrachte zaken precies over te nemen.
Overigens staat m'n aanbod nog van het te sturen bestandje.
Daartoe kun je je mailadres hier zodanig verbasterd achter laten dat het door een
zoetsnoepjeBIJgmailPUNTnl bijvoorbeeld
of
Jan
A***@live.nl
2013-12-03 14:22:40 UTC
Permalink
Beste Jan,

Ik heb hetzelfde probleem, maar dan wil ik een contract met een jaar automatisch verlengen en deze datum laten berekenen.. Ik heb de formule vergenomen, maar als delay 365,25 gebruikt.. Helaas kom ik nu uit op 01-02-5200 beetje ver in de tijd. Wat moet ik aanpassen om van bijv. 03-12-2013 te verlengen tot 03-12-2014????

Alvast bedankt voor je reactie :)
Groet, Albie
A***@live.nl
2013-12-03 14:39:07 UTC
Permalink
Hai,

Ik vergat erbij te vermelden dat de datum (mergefield)automatisch wordt gevuld door ons primaire systeem.

Groet

Loading...