• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Controle of datum juiste is ingevuld

Status
Niet open voor verdere reacties.

00Jan00

Gebruiker
Lid geworden
6 jan 2012
Berichten
15
Ik ben op dit moment bezig met een bestel/plan sheet in excel

Al je de knop "Bestelling PBS" indruk en daarna "project - stock materiaal" krijg je een invulscherm tezien

Ik heb aangegeven dat hij moet controleren dat alle velden zijn ingevuld en ander een foutmelding moet geven.

Als je bij het invulscherm van "Deadline (DD-MMM-YY)" niets invuld geeft hij de melding dat je vergeten ben iets in te vullen maar
vul je letters en/of cijfers in ipv een datum dan geeft hij geen melding.

Kan iemand mij vertellen hoe ik kan inregelen dat hij een melding geeft wanneer er wel iets is ingevuld maar geen datum.

Ik heb de sheet erbij gedaan

Alvast bedankt voor de moeite

Gr. Jan

PS ik heb het bestand flink moeten uitdunnen om onder de 100 mb te blijven en het wachtwoord is 92birgit92Bekijk bijlage bestand insturen helpijm.xls
 
Met een simpele check kun je dat wel oplossen:

Code:
    If Not IsDate(Me.Deadline_TextBox_05) Then
        MsgBox Me.Deadline_TextBox_05.Value & " is geen datum." & vbLf & "Graag eerst aanpassen!", vbCritical
        Exit Sub
    End If

Je hele opzet kan wel wat strakker, maar daar gaat de vraag niet over ;)
 
Je kunt beter vooraf 'controleren': zorg dat de gebruiker alleen maar een geldige datum kan selecteren.
 
SNB

Ik denk dat jou oplossing ook beter werkt, maaaaaaaaaaaaaaaaaaaaaaaaaar
hoe regel ik dit in, in mijn userform (Zie meegeleverd bestand)
 
Zet in het userform een combobox of een listbox waaruit de gebruiker 1 datum moet selecteren.

Vul die combobox/listbox (met naam deadline) met geldige data; -bijv. vanaf vandaag 60 dagen later- zo:
Code:
Private Sub UserForm_Initialize()
    deadline.List = [transpose(text(today() + row(1:60),"dd-mm-yyyy"))]
End Sub
 
als je deze code gebruikt kun de maanden ook met getallen invoeren zie voorbeeld:Bekijk bijlage bestand insturen helpijm (2.xls
Code:
Private Sub Deadline_TextBox_05_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    On Error GoTo fout
    d = CDate(Deadline_TextBox_05)
    Deadline_TextBox_05 = Format(d, "dd-mmm-YY")
    On Error GoTo 0
    Exit Sub
fout:
    MsgBox ("er is iets mis met de datum, eerst in orde maken AUB")
    Cancel = True
    On Error GoTo 0
End Sub
groet
 
@Sylvester

Voorkomen is altijd beter dan genezen.
Val gebruikers niet lastig met 'fout'meldingen; zij doen niets fout, de programmeur stelt ze daartoe in staat.

Maar als je toch wil testen is dit voldoende:

Code:
Private Sub Deadline_TextBox_05_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  if isdate(Deadline_TextBox_05.text) then exit sub

  MsgBox "er is iets mis met de datum, eerst in orde maken AUB"
  cancel =true
End Sub
 
snb, jouw code zonger error gedoe is mooier.
maar de opmaak van de datum in de textbox aanpassen aan wat er voor staat is wel zo mooi vind ik
groet sylvester
Code:
Private Sub Deadline_TextBox_05_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     if isdate(Deadline_TextBox_05.text)
         Deadline_TextBox_05 = Format(CDate(Deadline_TextBox_05), "dd-mmm-YY")
     else 
        MsgBox "er is iets mis met de datum, eerst in orde maken AUB"
        cancel =true
    end if
End Sub
 
Of
Code:
Private Sub Deadline_TextBox_05_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Deadline_TextBox_05.Text Like "##-##-####" Then Exit Sub
    MsgBox "er is iets mis met de datum, eerst in orde maken AUB"
    Cancel = True
End Sub
 
Rudi,
als je 1 1 12 in tikt met deze code:
Code:
Private Sub Deadline_TextBox_05_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     if isdate(Deadline_TextBox_05.text)
         Deadline_TextBox_05 = Format(CDate(Deadline_TextBox_05), "dd-mmm-YY")
     else 
        MsgBox "er is iets mis met de datum, eerst in orde maken AUB"
        cancel =true
    end if
End Sub
dan komt er in de tekst box 01-jan-12 te staan, je hoeft dan niet opnieuw in te voeren.
groet sylvester
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan