Textbox verplicht laten invullen!

  • Onderwerp starter Onderwerp starter ZZ1
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ZZ1

Gebruiker
Lid geworden
21 jul 2009
Berichten
116
Hallo,

Ik wil graag bij een uitvoer van een commandbutton textboxen controleren als deze zijn ingevuld en als dat klopt moet hij subtotalen uitrekenen en een totaal uitrekenen. Als niet alle textboxen zijn ingevuld wil ik graag dat er een messagebox voor komt met dat niet alle velden zijn ingevuld.

Deze code heb ik nu staan maar krijg ik de volgende fout melding:

Compileerfout:
Blok If zonder End If

Code:
Private Sub BERKMOM1Optellen_Click()

    If BERKMOM1Aantal_1 <> "" Then
    If BERKMOM1Aantal_2 <> "" Then
    If BERKMOM1Aantal_3 <> "" Then
    If BERKMOM1Aantal_4 <> "" Then
    If BERKMOM1Aantal_5 <> "" Then
    If BERKMOM1Aantal_6 <> "" Then
    If BERKMOM1Aantal_7 <> "" Then
    If BERKMOM1Aantal_8 <> "" Then
    If BERKMOM1Aantal_9 <> "" Then
    'doorgaan
    Else
    MsgBox "Je hebt niet alle aantal velden ingevuld"
    End If

    BERKMOM1Subtotaal_1.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_1.Text) * CDbl(BERKMOM1Aantal_1.Text)), 2)
    BERKMOM1Subtotaal_2.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_2.Text) * CDbl(BERKMOM1Aantal_2.Text)), 2)
    BERKMOM1Subtotaal_3.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_3.Text) * CDbl(BERKMOM1Aantal_3.Text)), 2)
    BERKMOM1Subtotaal_4.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_4.Text) * CDbl(BERKMOM1Aantal_4.Text)), 2)
    BERKMOM1Subtotaal_5.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_5.Text) * CDbl(BERKMOM1Aantal_5.Text)), 2)
    BERKMOM1Subtotaal_6.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_6.Text) * CDbl(BERKMOM1Aantal_6.Text)), 2)
    BERKMOM1Subtotaal_7.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_7.Text) * CDbl(BERKMOM1Aantal_7.Text)), 2)
    BERKMOM1Subtotaal_8.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_8.Text) * CDbl(BERKMOM1Aantal_8.Text)), 2)
    BERKMOM1Subtotaal_9.Text = "€ " + FormatNumber((CDbl(BERKMOM1Prijs_9.Text) * CDbl(BERKMOM1Aantal_9.Text)), 2)
    
    BERKMOM1Totaal.Text = "€ " + FormatNumber((CDbl(BERKMOM1Subtotaal_1.Text) + CDbl(BERKMOM1Subtotaal_2.Text) + CDbl(BERKMOM1Subtotaal_3.Text) + CDbl(BERKMOM1Subtotaal_4.Text) + CDbl(BERKMOM1Subtotaal_5.Text) + CDbl(BERKMOM1Subtotaal_6.Text) + CDbl(BERKMOM1Subtotaal_7.Text) + CDbl(BERKMOM1Subtotaal_8.Text) + CDbl(BERKMOM1Subtotaal_9.Text)), 2)
    
End Sub

Kan iemand mij helpen om deze fout melding kloppend te krijgen?? :D
 
Suggestie

Maak een aparte berekeningsmacro
Laat die draaien als een van de noodzakelijke velden wordt gewijzigd.
Pas als alle noodzakelijke velden zijn gevuld wordt het resultaat van de berekening in een veld gezet en de vervolgknop zichtbaar gemaakt: de gebruiker kan dus niet verder als niet alle noodzakelijke gegevens zijn ingevuld.

Code:
Sub berekening()
  for j= 1 to 9
    if Me("BERKMOM1Prijs_" & j).Text * Me("BERKMOM1Aantal_" & j).Text)=0 then exit for
    c0=c0 +Me("BERKMOM1Prijs_" & j).Text * Me("BERKMOM1Aantal_" & j).Text
  next
  knop_vervolg.visible=j=10
  if j=10 then totaal.text=c0
End Sub

Private sub BERKMOM1Prijs_1_change()
  berekening
end sub

Private sub BERKMOM1aantal_1_change()
  berekening
end sub
 
Laatst bewerkt:
Je hebt 9 If statements die je opent en je hebt maar 1 end if. Zorg ervoor dat je alle if statements dus ook afsluit.

snb was dus iets sneller en heeft meteen een oplossing voor je geschreven :)
 
Laatst bewerkt:
Beste Snb & Lemmod!

Bedank voor jullie snelle reactie :D

Maar ik ben nog maar een extreme amateur!
Dus mijn vraag is waar moet ik deze gegevens invullen??

Mijn textbox BERKMOM1Prijs_1 haalt zijn gegevens uit excel dus het bedrag.

Aan mijn textbox BERKMOM1Aantal_1 heb ik de volgende code hangen:
Code:
Private Sub BERKMOM1aantal_1_change()

    If BERKMOM1Aantal_1.Value = "" Then
Exit Sub
End If
    If IsNumeric(BERKMOM1Aantal_1.Value) Then
Exit Sub
Else
    MsgBox "Je mag alleen cijfers invullen!", vbCritical
    BERKMOM1Aantal_1.Value = ("")

End If

End Sub

En zo zijn er voor aantal en prijs nog 8 andere textboxen die het zelfde werken.

En aan mijn commandbutton heb ik de code hangen die ik aan het begin aangaf maar die klopt zeker niet!!
Kun jij die wel kloppend maken of zeggen hoe ik de gegevens van jou gebruik?? :D
 
Koop een boek en begin bij het begin.

en vervang

Code:
Private Sub BERKMOM1aantal_1_change()

    If BERKMOM1Aantal_1.Value = "" Then
Exit Sub
End If
    If IsNumeric(BERKMOM1Aantal_1.Value) Then
Exit Sub
Else
    MsgBox "Je mag alleen cijfers invullen!", vbCritical
    BERKMOM1Aantal_1.Value = ("")

End If
End Sub
door:
Code:
Private sub BERKMOM1[COLOR="Red"]Aantal[/COLOR]_1_change()
  berekening
end sub
 
Laatst bewerkt:
Beste snd!

Ik heb een aantal boeken hier liggen maar deze gaan nog niet zo ver, dus daar komen binnenkort weer nieuwe! Jong en hobby en door goede hulp kun je er ook komen:)

Maar BERKMOM1Aantal_1 en BERKMOM1Prijs_1 zijn niet dezelfde textboxen.

Ik heb die Sub berekening als nieuwe code ingevoerd en heb BERKMOM1Prijs_1 jouw code ingevoerd maar hij doet niets komt dat omdat ik BERKMOM1Prijs_1 Locked en Enabled waardoor hij niets doet.

Kun je dat verhelpen?:cool:
 
Blijkbaar mag de gebruiker alleen maar iets bij aantal invullen.
Alleen voor de te wijzigen tekstvakken hoeft de berekenigsmacro te worden aangeroepen.
Ik heb mijn laatste suggestie aangepast.
 
Beste snb,

Bedankt voor jou reactie nu heb ik het ook aangepast maar ik krijg een Syntaxisfour in de volgende regel:

c0=c0 +Me("BERKMOM1Prijs_" & j)1.Text * Me("BERKMOM1Aantal_" & j).Text)

Weet jij wat er niet goed is??
 
Code:
c0=c0 +Me("BERKMOM1Prijs_" & j).Text * Me("BERKMOM1Aantal_" & j).Text

Ook een sluithaakje teveel.
Maar.... syntaxisvragen dien je zelf op te lossen (leer je veel van).
 
snb & Lemmod

Super bedankt voor jullie HULP!!!!!!!!!!!!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan