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

Rekenen met datum

Status
Niet open voor verdere reacties.

JosEindhoven

Gebruiker
Lid geworden
4 dec 2014
Berichten
431
Ik heb een formulier met txtvak waarin ik een datum kan plaatsen middels een date pikker. Is het mogelijk om in een ander txt vak dezelfde datum te geven maar dan 18 jaar later. Zo kan ik zien wie er ergens 18 jaar oud word. Deze berekening moet alleen plaatsvinden voor de mensen die nog 18 moeten worden.
 

Bijlagen

  • 18 jarige.xlsm
    83,5 KB · Weergaven: 57
Met een korte uitbreiding van T_04_Change moet dat lukken:
Code:
Private Sub T_04_Change()
    T_04.Value = Format(T_04.Value, "dd/mm/yyyy")
    geb = DateValue(T_04.Value)
    j_18 = DateSerial(Year(geb) + 18, Month(geb), Day(geb))
    If j_18 >= Date Then
        T_13.Value = Format(j_18, "dd/mm/yyyy")
    End If
End Sub
 
Laatst bewerkt:
Ik had nog een klein foutje gezien en vlug aangepast, maar misschien was je toen al de eerste code aan het proberen.
j_18 is een variabele die niets met het formulier op zich te maken heeft. Test je nog eens?
 
zo?

Code:
Private Sub T_04_Change()
    T_04.Value = Format(T_04.Value, "dd/mm/yyyy")
    T_13.Value = DateSerial(Year(T_04) + 18, Month(T_04), Day(T_04))
End Sub
 
De code van Enigmasmurf werkt prima en gaat niet aan de voorwaarde voorbij.
 
Dan zal je eea toch beter moeten toelichten want we hebben het beiden op dezelfde manier begrepen, nl. tel 18 jaar bij de datum in T_04. Dat is ook wat je letterlijk vroeg in de openingspost.
Is het mogelijk om in een ander txt vak dezelfde datum te geven maar dan 18 jaar later

Edit: en tussendoor heeft edmoor het ook al op dezelfde manier begrepen, dus?
 
Laatst bewerkt:
Vraagstelling in #1 is fout. T_04 is nml. niet de geboortedatum.:D
Code van Enigmasmurf doet precies wat je vraagt.
 
Laatst bewerkt:
De steunbetuigingen blijven vlotjes binnenstromen. Dank :d

Vooruit dan maar, bij deze een oplossing die NIET werd gevraagd :p
Code:
Private Sub T_04_Change()
    T_04.Value = Format(T_04.Value, "dd/mm/yyyy")
    lidnr = CDbl(T_00.Value)
    j_18 = WorksheetFunction.VLookup(lidnr, Sheets("Leden").Columns("A:F"), 6, 0)
    If j_18 >= Date Then
        T_13.Value = Format(j_18, "dd/mm/yyyy")
    End If
End Sub
 
Misschien dat TS het dan smurft ;)
 
Ed ,ik smurf helemaal niets en Albert ik heb het nooit over geboortedatum gehad. Sorry dat ik zo laat reageer maar ben de hele middag verder weg geweest. Volgens mij had ik de vraag tocht duidelijk gesteld. Het klopt inderdaad dat er in txtbox_13 iets moet verschijnen maar niet als diegene nog 18 moet worden. Als ik bv Steensma selecteer en een datum ingeef dat geeft hij in T_13 de datum van T_04 +18 jaar terwijl Steensma geboren is in 1987 en dus allang 18 jaar oud is
 
Vreemd.
Dat werkt hier gewoon goed in je eigen document.
Bij ingave van een datum in 1987 in T_04 verschijnt er niets in T_13.
Als de in T_04 ingegeven datum nog geen 18 jaar geleden is wordt T_13 keurig gevuld met de juiste datum.
 
Laatst bewerkt:
Zelfs dan geeft hij een foutmelding. Overigens wil ik helemaal geen datum invoeren van 1987 maar van bv 2020. Het prog moet dus kijken naar de sheet Leden kolom E waar de geboorte datum staat
 
Je wordt nu echt onduidelijk.
Je vraag was:
- Geef in T_04 een datum in
- Tel daar 18 jaar bij op
- Als de ingegeven datum nog geen 18 jaar geleden is, plaats dan de ingegeven datum + 18 jaar in T_13.

Dat is precies wat de code in #2 doet.
Als dat niet is wat je wilt zal je duidelijker moeten zijn in wat nu eigenlijk je bedoeling is.

En een foutmelding lrijg ik in je voorbeeld document met gebruik van de code in #2 niet, die werkt gewoon goed.
Daarnaast, als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is.
 
Laatst bewerkt:
Dan heb ik de vraag misschien niet duidelijk genoeg gesteld. Het gaat er om als ik een datum ingeef in T_04 er in T_13 niets komt te staan als de betreffende persoon nog geen 18 jaar is.
 
En dat is precies wat er gebeurt met gebruik van de code in #2.
Het enige dat je extra zou kunnen doen is T_13 leeg maken als die 18 jaar niet van toepassing is.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan