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

Checkbox M/V

Status
Niet open voor verdere reacties.

Jarodxxx

Gebruiker
Lid geworden
26 nov 2006
Berichten
243
Hallo!

Ik probeer in een excelformulier
gegevens zichtbaar te maken zonder gebruik te maken van een sheet

vb: ik heb een combobox (selectiebox met invoervak) waarin ik de optie man of vrouw wil zien en kan kiezen. Het opslaan vanuit het formulier werkt al, alleen dit dus nog niet.

+ kan ik ook specifiek in een invulveld aangeven wat er wel en niet ingevuld mag worden? vb alleen een datum of alleen getallen o.i.d? Het zichtbaar maken van gegevens bijvoorbeeld getallen als geld kan met format, maar kan dit ook bij de invoer van gegevens, of is dit een specifieke instelling van het veld?

en kan ik een formule toepassen in het userformulier voor het uitrekenen van de leeftijd. In een cel van een sheet gebruik ik:

=(VANDAAG()-E40)/365

E40 = de geboortedatum

kan dit zonder sheet dus gewoon een invoerveld op een formulier (naam: txbGeboortedatum) en dat hij dan na het invullen van invoerveld txbGeboortedatum in de textbox: txbLeeftijd de formule wordt toepast, waarbij dan e40 txbGeboortedatum wordt?


Iemand die weet hoe dat makkelijk kan?

tx!

JC
 
Laatst bewerkt:
Upload eens een voorbeeld file.
Daar kunnen we meer mee.

Nu kunnen we alleen zeggen dat het mogelijk is :).
 
Jardoxx,

Kijk eens naar het voorbeeld.
Heb hier wat dingetjes in gezet.
 

Bijlagen

  • Jarodxxx 1.zip
    10,2 KB · Weergaven: 54
Laatst bewerkt:
Demeter

Test ziet er goed uit!
tsjonge!

bedankt man!

Groeten,

Jarod!

ps: ik zal 't morgen na m'n werk gaan bekijken, 't programma wordt met de dag leuker!
 
Maakt me zelf ook scherper om hier op het forum vragen (proberen) te beantwoorden.
We doen het graag.

Succes.
 
Helemaal gelijk

Demeter,

Daar heb je helemaal gelijk in!
Ik probeer het ook zo af en toe eens (als ik tijd vind:)

Groet,

Jarod.
 
IsDate?

Hallo Demeter,

Ik heb je testbestand bekeken en zie dat je gebruik maakt van een textbox waarin je alleen cijfers mag invoeren. Prima oplossing! (voor mij)

Alleen kan dit ook met een datum?
Ik heb 't geprobeerd met IsDate, maar daar kom ik geen stap verder mee.

Groet,

Jarodx
 
Probeer eens een Exit event toegepast op dat tekstvak:

Code:
txbGeboortedatum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'code om te checken op datum
End Sub

Wigi
 
Zou kunnen

Hallo Wigi,

ff geleden:)

Ik geloof dat mijn brein niet helemaal bij de jouwe aansluit.
Wat bedoel je precies?

Ik ben de draad even kwijt.

Jarod
 
Ik heb de hele topic niet gevolgd, maar het gaat toch over

txbGeboortedatum

waarin een datum moet komen. Niet?
 
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/showthread.php?t=27977&highlight=date+textbox

Je kan het op twee manieren doen.
1e zoals Wigi voorstelt:
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:
Dim dDate As Date
Private Sub CommandButton1_Click()
    Range("G1").Value = dDate
    
    Me.Hide
End Sub
 
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.
 
Datum in een textbox

Demeter in een nieuwe post gezet, zodat iedereen kan meegenieten!
 
Laatst bewerkt:
Heb het gezien.

Kan je deze nog op opgelost plaatsen?

Bedankt.
 
Als 't werkt:)

Demeter,

Doe ik zodra ik weet dat't werkt!
Zo de code beoordelend wel!
Gewoon nog geen tijd gevonden/gehad om te kijken helaas.:eek:

Groet,

Jarod!
 
Datum foute invoer

Demeter,

Werkt voor 't grootste gedeelte, alleen ik mag een datA
31-1212-200293
3131-12-2006
3131-1212-2006
31-12-206060

invullen, hoe kan ik het beperken tot een nette datum (WEL HELE JAAR) 31-12-2006?

Jarod
 
Zet de max aantal karakters van je textbox op 10.
ben je er dan?
 
Simpel effectief, maar helaas

op zich een goede oplossing, maar dan mag ik nog steeds zaken als:

12-1212-12

Jarod

ps: ik gebruik trouwens 'jou' (demeter) oplossing
 
pfffffffff, hoe ver wil je gaan? Op een gegeven moment houdt mij kennis ook op.
Probeer deze eens:
Code:
If Left(TextBox1.Value, 2) > 31 And Mid(TextBox1.Value, 4, 2) > 12 And Mid(TextBox1.Value, 3, 1) = "-" And Mid(TextBox1.Value, 6, 1) = "-" Then
Controleerd of het 3 en 6 teken in de reeks een - is. Moet je natuurlijk wel in je voorbeeld aangeven dat de data als volgt moet worden ingevoerd: dd-mm-jjjj / 20-07-2006

Misschien niet zo een mooie code maar doet zijn trucje.
 
Datum gebruik in een cel werkt!

Demeter,

Heel ver en heel precies!
Je gaf de voorzet ik kop 'm in!
Hier de vollledige oplossing van mijn probleem
(misschien handig voor mensen die dit gaan gebruiken om de de textbox maxlength te beperken tot 10 karakters)

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    
On Error Resume Next
   [COLOR="Red"] If TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy") Then[/COLOR]
        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")
On Error GoTo 0

End Sub
 
Laatst bewerkt:
Moet het niet zijn

Code:
If TextBox1.Value [B]<>[/B] Format(TextBox1.Value, "dd/mm/yyyy") Then
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan