Hallo!
Voor school ben ik bezig met VBA script. We moeten nu een eigen opdracht maken, en ik had bedacht een soort klein webshopje te maken. Je kan drie producten aanvinken, en daarvan telt het programma de prijzen op. Vervolgens kun je invoeren met hoeveel geld je betaalt, en het programma rekent het wisselgeld uit. Dat gaat in principe goed, behalve als je 20 euro moet betalen, en je geeft honderd euro. Dan denk het programma dat je 80 euro te weinig betaald! Dat klopt natuurlijk niet, maar ik snap niet goed waar het misgaat.
Ik gebruik de volgende code:
Wat uitleg: De commandButton1 is de knop waarop je klikt om de prijs te berekenen. TextBox1 is het schermpje waarin de opgetelde prijs komt te staan. Commandbutton 2 is de knop om het wisselgeld te berekenen. TextBox2 is het schermpje waarin je het bedrag dat je betaald invoert, en het wisselgeld komt te staan in TextBox3.
Nu gaat het dus verkeerd als je 20 euro moet betalen, en je heeft 100 euro. Dan zegt het programma: "U geeft te weinig geld, u moet nog -80 euro bijbetalen." Dat klopt natuurlijk niet.
Wat ik zelf heb geprobeerd:
Eerst heb ik geprobeerd fouten te zoeken in de code, maar ik kon niks vinden waardoor dit probleem zou kunnen optreden. Vervolgens heb ik een ander tekst scriptje gemaakt, om puur en alleen te kijken naar het vergelijken van getallen, namelijk:
Ook hier gaat het mis, als je als getal1 5 invoert, en als getal2 10, dan zegt het programma wederom '5 is groter dan 10"
Helaas wist ook de docent het niet, dus jullie zijn mijn laaste poging
Zie ik iets heel stoms over het hoofd, of maak ik gewoon een denk (programmeer?) fout. We zijn pas een paar weken met VBA bezig, dus zo groot is mijn kennis niet...
Alvast bedankt voor het meedenken!
Voor school ben ik bezig met VBA script. We moeten nu een eigen opdracht maken, en ik had bedacht een soort klein webshopje te maken. Je kan drie producten aanvinken, en daarvan telt het programma de prijzen op. Vervolgens kun je invoeren met hoeveel geld je betaalt, en het programma rekent het wisselgeld uit. Dat gaat in principe goed, behalve als je 20 euro moet betalen, en je geeft honderd euro. Dan denk het programma dat je 80 euro te weinig betaald! Dat klopt natuurlijk niet, maar ik snap niet goed waar het misgaat.
Ik gebruik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Private Sub CommandButton1_Click()
If CheckBox1 = True Then
processor = 20
End If
If CheckBox2 = True Then
videokaart = 10
End If
If CheckBox3 = True Then
ram = 5
End If
TextBox1.Text = processor + videokaart + ram
End Sub
Private Sub CommandButton2_Click()
wisselgeld = TextBox2.Text - TextBox1.Text
If TextBox2.Text < TextBox1.Text Then
MsgBox ("U geeft te weinig geld, u moet nog " & wisselgeld * -1 & " euro bijbetalen")
Else
TextBox3.Text = TextBox2.Text - TextBox1.Text
End If
End Sub |
Wat uitleg: De commandButton1 is de knop waarop je klikt om de prijs te berekenen. TextBox1 is het schermpje waarin de opgetelde prijs komt te staan. Commandbutton 2 is de knop om het wisselgeld te berekenen. TextBox2 is het schermpje waarin je het bedrag dat je betaald invoert, en het wisselgeld komt te staan in TextBox3.
Nu gaat het dus verkeerd als je 20 euro moet betalen, en je heeft 100 euro. Dan zegt het programma: "U geeft te weinig geld, u moet nog -80 euro bijbetalen." Dat klopt natuurlijk niet.
Wat ik zelf heb geprobeerd:
Eerst heb ik geprobeerd fouten te zoeken in de code, maar ik kon niks vinden waardoor dit probleem zou kunnen optreden. Vervolgens heb ik een ander tekst scriptje gemaakt, om puur en alleen te kijken naar het vergelijken van getallen, namelijk:
code:
1
2
3
4
5
6
| Sub Test()
getal1 = InputBox("Geef getal 1")
getal2 = InputBox("Geef getal 2")
If getal2 < getal1 Then MsgBox (getal1 & " is groter dan " & getal2)
If getal1 < getal2 Then MsgBox (getal2 & " is groter dan " & getal1)
End Sub |
Ook hier gaat het mis, als je als getal1 5 invoert, en als getal2 10, dan zegt het programma wederom '5 is groter dan 10"
Helaas wist ook de docent het niet, dus jullie zijn mijn laaste poging
Zie ik iets heel stoms over het hoofd, of maak ik gewoon een denk (programmeer?) fout. We zijn pas een paar weken met VBA bezig, dus zo groot is mijn kennis niet...
Alvast bedankt voor het meedenken!