Ik realiseer me dat ik ook een datum kan opvragen door 3
maal een listbox of keuzelijst te laten invullen (één voor
de dag, één voor de maand en één voor het jaar), maar ik
denk dat er een minder omslachtige manier moet zijn.
Wie o wie kan mij helpen?
Bij voorbaat dank,
Harry
Regards,
KeepItCool < email : keepitcool chello nl (with @ and .) >
< homepage: http://members.chello.nl/keepitcool >
Waarom zou je geen gebruik maken van het kalenderbesturingselement in uw
formulier? Makkelijk in het gebruik, en het ziet er nog mooi uit ook.
Bovendien is dit besturingselement nog vrij onbekend. Je kan het vinden bij
de extra besturingselementen. Een voorbeeld vind je op mijn website:
http://users.skynet.be/onderland/Excel.htm
Bij hoe moet ik:
15-Een kalender
Luc
"Harry" <hsch...@zonnet.nl> schreef in bericht
news:09cd01c2cbd0$5a41c110$8df82ecf@TK2MSFTNGXA02...
de kalender ziet er inderdaad heel verzorgd uit. Voor mijn formulier is hij
echter veel te groot. Evenzogoed bedankt voor de tip.
Harry
"Luc.Heyndrickx" <lucDitVerwijd...@skynet.be> schreef in bericht
news:eThBbrIzCHA.1900@TK2MSFTNGP10...
Daarmee blijf jij natuurlijk nog altijd met hetzelfde probleem zitten. Ik
vermoed zelfs dat je het niet kan verhinderen dat de gebruiker een verkeerde
input geeft. Immers: 01/02/03 is een datum, maar in feite is het een
serieel getal met speciale opmaak. Indien iemand nu 010203 zou invullen,
dan heeft Excel daar geen moeite mee. Hij beschouwd dit dus ook als een
serieel getal, dat hij moet opmaken als datum. Helaas is de datum die Excel
er in ziet een andere als degene die jij bedoelt.
Ik zie nog wel een oplossing (Alhoewel, waterdicht is het nog niet) indien
je de invoer zou beperken tot pakweg de datum van nu plus en/of min 1000
dagen.
Moet je doen met:
If datum < Now +1000 Then...
niet getest, omdat ik niet weet of dit een oplossing zou zijn. Maar
misschien een idee?
Luc
"Harry Schikhof" <hsch...@zonnet.nl> schreef in bericht
news:3e403403$0$23901$edd6...@news.versatel.net...
"
Sub Macro1()
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween, Formula1:="1/1/1944", Formula2:="1/1/1978"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
"
Ik heb nog niet getest hoe mijn macro gaat reageren met deze code, maar daar
kom ik vandaag nog wel achter.
Harry
"Luc.Heyndrickx" <lucDitVerwijd...@skynet.be> schreef in bericht
news:uN33v$NzCHA.1840@TK2MSFTNGP12...
Met de volgende code heb je enige controle op de ingevoerde waarde.
voordeel is dat de uiteindelijke waarde die in datumTXT komt te staan
een univorme opmaak heeft.
Private Sub datumTXT_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If IsDate(datumTXT.Value) Then
datumTXT.Value = CDate(datumTXT.Value)
Else
MsgBox "waarschuwing geen geldige datum"
Cancel = True
End If
End Sub
Verder kun je de invoer nog beperken door grenswaarden aan te geven in
het if statement.
Ton
ik geloof dat dit precies is wat ik zocht. Ook compleet verkeerde input,
zoals letters, worden op deze wijze onderschept. En niet onbelangrijk:
dankzij Cancel=true blijft de focus op het juiste veld.
Bedankt!
Harry
"Ton" <ton.de...@planet.nl> schreef in bericht
news:7b38a73b.03020...@posting.google.com...
Graag gedaan.
Pandarve