• 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.

Hoe maak je alleen datum invoer van een textbox in een userform

Status
Niet open voor verdere reacties.

Jarodxxx

Gebruiker
Lid geworden
26 nov 2006
Berichten
243
Van Demeter onderstaande code, in een nieuwe post, zodat iedereen kan profiteren van dit stukje!

Op de volgende manier krijg je in een textbox alleen de invoer van een datum!


Jarodxxx,

Eigenlijk had je een nieuwe vraag moeten beginnen, zodat deze info niet verdwijnt onder een vreemde titel.

Heb de code van Wigi uitgebreid, met dank aan de jongens van Ozgrid: http://www.ozgrid.com/forum/showthre...t=date+textbox

Je kan het op twee manieren doen.
1e zoals Wigi voorstelt:
Code:
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Left(TextBox1.Value, 2) > 31 Or Mid(TextBox1.Value, 4, 2) > 12 Then
        MsgBox "Onjuiste datum, vul opnieuw in A.U.B.? (dd/mm/jjjj)", vbCritical
        TextBox1.Value = vbNullString
        TextBox1.SetFocus
        Exit Sub
    End If
     
    dDate = DateSerial(Year(Date), Month(Date), Day(Date))
    TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy")
End Sub
Deze controleerd de invoer in TextBox1 nadat er uit het vak wordt gegaan (bv mbv de Tab-toets)

Volgende code controleert na het drukken op de CommandButton1 de data. Bij juistheid wordt de code uitgevoerd bij onjuistheid komt er een msg box en wordt de code verlaten.
Code:
Code:
Dim dDate As Date
Private Sub CommandButton1_Click()
    Range("G1").Value = dDate
    
    Me.Hide
End Sub

Code:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If Left(TextBox1.Value, 2) > 31 And Mid(TextBox1.Value, 4, 2) > 12 Then
        MsgBox "Onjuiste datum, vul opnieuw in A.U.B.? (dd/mm/jjjj)", vbCritical
        TextBox1.Value = vbNullString
        TextBox1.SetFocus
        Exit Sub
    End If
     
    dDate = DateSerial(Year(Date), Month(Date), Day(Date))
    TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy")
    dDate = TextBox1.Value
End Sub
Succes.





__________________
 
No problemo

Demeter geen punt, zet deze ook even op opgelost!

Jarod.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan