dateadd in ander format (word userform)

Status
Niet open voor verdere reacties.

jfmjacobs

Gebruiker
Lid geworden
1 mrt 2009
Berichten
45
Hallo allen,

Ik heb al verschillende keren hulp gekregen of gevonden wat ik wilde doen hier op het forum.
Ik kan echter niet vinden of het mogelijk is om een DateAdd in een textbox een ander format te geven.

met andere woorden de code DateAdd(interval, number, date) geeft als resultaat "dd-mm-yyyy"
Ik zou graag zien dat de weergave "dd mmm 'yy" (bijvoorbeeld: 30 jan '19) wordt. is dit uberhoubt mogelijk in vba voor word?

de code die ik nu dus gebruik is:
Code:
TextBox4.Value = DateAdd(30, d, now())

is het daarnaast mogelijk om aan de hand van een getal, ingevoerd in een bepaald textbox, de interval te laten zijn van deze DateAdd?

Ik hoor het graag weer. bij voorbaat dank!
 
Je gebruikt de DateAdd niet juist. Getal en type zijn omgedraaid.

Probeer dit eens:

Code:
TextBox4.Value = DateAdd("d", TextBox5, Now())

waarbij het getal in textbox5 moet staan.

Edit:

Nu met juiste format:

Code:
TextBox4.Value = Format(DateAdd("d", TextBox5, Now()), "dd mmm 'yy")
 
Laatst bewerkt:
Of beter nog, aangezien je een datum als resultaat wilt:
Code:
    Me.TextBox4.Value = Format(DateAdd("d", Me.TextBox2, Date), "dd mmm 'yy")
Het is een beetje onzinnig om, als je geen tijd nodig hebt, om Now() te gebruiken. En gebruik IntelliSense om objecten te selecteren (en bij voorkeur logische namen; wat zegt Textbox2 nu helemaal?) zodat je typfouten voorkomt.
 
@SjonR, @OctaFish,
Waar staat dat het aantal dagen ergens ingevoerd moet worden? Als het al zo is dan zou ik het doen
Code:
Private Sub TextBox1_Change()
  If IsNumeric(TextBox1) Then TextBox2.Value = Format(DateAdd("d", TextBox1, Now), "dd mmm 'yy")
End Sub

Me. lijkt mij overbodig. Textbox namen mogen naar smaak aangepast worden. Het gebruik van Date of Now maakt qua snelheid niets uit. Scheelt alleen 1 letter:)
 
@VenA: als je de lengte van een commando belangrijk vind (Now vs Date) dan is juist het gebruik van Me. belangrijk, omdat je, als je goed gelezen had, nu had geweten dat het a) typfouten voorkomt (zoals ik al schreef) maar je b) óók nog eens minder letters hoeft in te typen, omdat je ze na de eerste twee gewoon uit de keuzelijst kan halen.
Daarnaast heb je, gezien je opmerking, ook gemist waarom ik andere namen zou gebruiken.
Kortom: lees ook eens wat anderen schrijven :). (En daarmee bedoel ik natuurlijk: lees het eens goed ;))
 
Waarom heb je altijd 2 berichten nodig om iets te schrijven? Als er nog geen reactie geweest is kan je het gewoon aanpassen?

Knipsel.JPG

Daarnaast is deze zin onbegrijpelijk
Het is een beetje onzinnig om, als je geen tijd nodig hebt, om Now() te gebruiken. En gebruik IntelliSense om objecten te selecteren (en bij voorkeur logische namen; wat zegt Textbox2 nu helemaal?) zodat je typfouten voorkomt.
Als je hiermee doelt op het gebruik van Me in combinatie met IntelliSense dan moet je een verrekte goede leesbril hebben op het eruit te halen.

Verder maakt het het mij niet zoveel uit. Jij wil toch altijd het laatste antwoord hebben en dan dan het liefst in tweevoud.:)
 
@vena: Ik zie geen dubbel antwoord, maar jij blijkbaar wel. Vind ik dan wel weer knap van je.
 
nou voordat dit uit de hand loopt ;-) bedankt weer voor de info. ik ga er weer mee aan de slag.
iets met meerdere wegen naar Rome???
 
Of

Code:
Private Sub TextBox1_Change()
  If IsNumeric(TextBox1) Then TextBox2 =format(Date + TextBox1, "dd mmm yyyy")
End Sub
 
ter afsluiting:
Ik heb uiteindelijke de volgende code verwerkt in het bestand:

Code:
Me.TextBox4.Value = Format(DateAdd("d", Me.TextBox2, Date), "dd mmm 'yy")

met dank!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan