Datum notatie vanuit Textbox naar cell

Status
Niet open voor verdere reacties.

MarkF

Gebruiker
Lid geworden
30 okt 2008
Berichten
49
Ik ben de hele ochtend al aan het zoeken hoe ik de waarde vanuit een ingevulde textbox op de europese standaard kan krijgen.

waneer ik 1-4-9 in de textbox in typ wil ik dat deze dan in de geselecteerde cel 1-april-09 invult. i.p.v. 4-jan-09.
kan iemand mij hiermee helpen ik weet het echt niet en ik kan niets vinden op de forums wat sluitend is voor mijn probleem.

mijn code tot zover is deze

' startdatum invoeren
Dim Message3, Title3, Default3, MyValue3
Message3 = "Geef startdatum project op"
Title3 = "projectgegevens"
MyValue3 = InputBox(Message3, Title3, Default3)

Range("h2") = MyValue3 'startdatum


Nu zou ik graag willen dat als ik 1-4-9 invul er dan ook komt te staan 1-apr-09
 
laatste stukje toevoegen

Macro1 Macro
' De macro is opgenomen op 15-04-2009 door Jan Vaane.
'
Dim Message3, Title3, Default3, MyValue3
Message3 = "Geef startdatum project op"
Title3 = "projectgegevens"
MyValue3 = InputBox(Message3, Title3, Default3)

Range("h2") = MyValue3 'startdatum

'
End Sub
Sub Macro2()
'
' Macro2 Macro
' De macro is opgenomen op 15-04-2009 door Jan Vaane.
'

'
Range("H2").Select
Selection.NumberFormat = "[$-413]dd/mmm/yy;@"
End Sub
 
Deze pakt die niet. Het blijft bij het oude.



Macro1 Macro
' De macro is opgenomen op 15-04-2009 door Jan Vaane.
'
Dim Message3, Title3, Default3, MyValue3
Message3 = "Geef startdatum project op"
Title3 = "projectgegevens"
MyValue3 = InputBox(Message3, Title3, Default3)

Range("h2") = MyValue3 'startdatum

'
End Sub
Sub Macro2()
'
' Macro2 Macro
' De macro is opgenomen op 15-04-2009 door Jan Vaane.
'

'
Range("H2").Select
Selection.NumberFormat = "[$-413]dd/mmm/yy;@"
End Sub
 
MarkF,

heb je al in de help van Excel gekeken bij Format?
 
Gebruik de one-liner:
Code:
Range("H2") = Format(InputBox("Geef startdatum project op", "projectgegevens", Default3), "mm-dd-yyyy")
 
Selection.NumberFormat = "[$-412]d/mmm/yyyy;@"
Dim Message3, Title3, Default3, MyValue3
Message3 = "Geef startdatum project op"
Title3 = "projectgegevens"
MyValue3 = InputBox(Message3, Title3, Default3)

Range("h2") = MyValue3 'startdatum
End Sub


413 veranbderen naar 412
 
Probeer dit eens:

Code:
Dim Message3, Title3, Default3, MyValue3
Dim cDatum As Date

Message3 = "Geef startdatum project op"
Title3 = "projectgegevens"
MyValue3 = InputBox(Message3, Title3, Default3)

If Not IsDate(MyValue3) Then Exit Sub
cDatum = CDate(MyValue3)
Range("h2") = cDatum 'startdatum

Werkt bij mij prima!

Michel
 
bedankt

Hallo allemaal,

Heel erg bedankt voor jullie zeer snelle reacties.
de oplossing van Michel werkt in mijn textbox.

ook al snap ik er nog niets van, maar dit ga ik nog even uitzoeken.

Nogmaals bedankt voor jullie tijd en energie!!!

met vriendelijke groet,

Mark F :D:D:D
 
Dit blijken dus equivalenten:

Code:
Sub tst()
  Range("H2") = Format(InputBox("Startdatum project", "projectgegevens"), "mm-dd-yyyy")
  Range("H3") = CDate(InputBox("Startdatum project", "projectgegevens"))
End Sub
 
Hoi Mark,

Het probleem is eigenlijk best wel simpel:
Uit een tekstvak komt per definitie een tekstwaarde. Om een datum terug te leveren, moet je dus een vertaalslag maken. Dat doe je met de functie CDate.
Zonder deze functie vermoed ik dat Access standaard de amerikaanse datumnotatie gebruikt, met het bekende resultaat.

Om fouten af te vangen, check ik eerst of de ingevoerde waarde wel voldoet aan een datumnotatie m.b.v. de functie IsDate. In mijn voorbeeld gooi ik 'm uit de procedure, maar je kunt 'm ook terugzetten naar het tekstvak, met een msgbox erbij of ze asjeblieft een datum in willen voeren....
 
dank je wel voor de uitleg.
zoals je het uitlegt klinkt het eenvoudig.

bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan