Tekstveld vergeten in te vullen

Status
Niet open voor verdere reacties.

JJZijlstra

Gebruiker
Lid geworden
26 nov 2013
Berichten
283
Beste lezer(s),

In dit bestand doe ik de volgende test:
Stel het volgende: Via een invoermenu vergeet ik bijv. de geboortedatum in te vullen in de tekstbox. Er verschijnt dan een MsgBox met de mededeling dat ik dit alsnog moet doen.
Het tekstveld 'Geboortedatum' kleurt rood om aan te geven dat dit veld nog ingevuld moet worden. Tot zover verloopt alles correct.

Dit doe ik en druk dan op de knop "Toevoegen". Maar dan wordt alles (= achternaam, tussenvoegsel voornaam en geboorteplaats nogmaals extra in zijn geheel toegevoegd wat niet de bedoeling is.
Alleen de geboortedatum in kolom D is slechts de bedoeling.
Bovendien keert het tekstveld "Geboortedatum" niet meer terug met zijn oorspronkelijke achtergrondkleur terug wanneer je dit vak invult of hebt ingevuld.

Met end(xlUp) en Offset heb ik een en ander uitgeprobeerd doch zonder resultaat. Misschien is het heel eenvoudig.
Wat is de juiste code?

Vriendelijke groet,
Johan
 

Bijlagen

  • Test1.xlsm
    24,3 KB · Weergaven: 42
Laatst bewerkt:
Je doet er beter aan eerst het formulier correct te laten invullen voordat je gegevens wegschrijft; nu heb je een probleem dat niet nodig is geschapen.
Code:
Private Sub btnToevoegen_Click()
Dim VolgendeRij As Long
   
    If txtAchternaam.Value = "" Or IsNumeric(txtAchternaam.Value) Then
        MsgBox "Dit is een verplicht invulveld" & " " & vbNewLine & vbNewLine & _
        "Vergeet niet de achternaam in te vullen", vbInformation, "ACHTERNAAM INVULLEN"
        txtAchternaam.BackColor = vbRed
        txtAchternaam.ForeColor = vbWhite
        Exit Sub
    End If
      
    If txtGeboortedatum.Value = "" Then
        MsgBox "Vergeet niet de geboortedatum in te vullen", vbInformation, "GEBOORTEDATUM INVULLEN"
        txtGeboortedatum.BackColor = vbRed
        txtGeboortedatum.ForeColor = vbWhite
        Exit Sub
    End If
   VolgendeRij = WorksheetFunction.CountA(Range("A:A")) + 1
   Range("A" & VolgendeRij).Offset(1, 0).Select
      
   'Alle tekstvakken
   '----------------
   'Cells(VolgendeRij, 1).Value = StrConv(txtAchternaam.Value, vbProperCase)
   Cells(VolgendeRij, 1).Value = txtAchternaam.Value
   Cells(VolgendeRij, 2).Value = txtTussenvoegsel.Value
   Cells(VolgendeRij, 3).Value = txtVoornaam.Value
   Cells(VolgendeRij, 4).Value = txtGeboortedatum.Value
   Cells(VolgendeRij, 5).Value = txtGeboorteplaats.Value
   
End Sub
 
@OctaFish,

Inderdaad daar heb je gelijk in. Hier had ik niet bij stilgestaan.
Het komt er dus op neer op welke plek je de code plaatst die je de waarschuwing moet geven.

Hartelijk dank voor je bijdrage.

Vriendelijke groet,
Johan
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan