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!