Ik ben voor het eerst sinds een paar jaar weer eens bezig met VB in de vorm van een Excel Macro, en ik moet zeggen, bevalt me niet echt...
Ik heb een form met (oa) een listbox, textfield, label en knop
In het textfield kan met een getal invullen (double) en die moet dan bij de waarde van het label opgeteld worden (ook een double)
Dit werkt wel als de waarde van het label 0 is. Als ik dan 29.95 in het tekstvak invul en op de knop druk krijg ik mooi 29.95 in mijn label te staan.
Als ik er dan nog eens 29.95 bij optel wordt het in ene 58.95, terwijl dit (lijkt me) toch echt 58.90 moet zijn...
Code voor het optellen:
Dan is er nog een ander probleem, en dat is dat VB de getallen achter de komma niet lijkt te onthouden. Er is een array aangemaakt die voor elk item in de listbox dit getal bijhoudt. Laten we deze array voor de simpelheid ff myArray noemen.
Als men op een ander item van de listbox drukt word de huidige waarde van de label opgeslagen in de array en de nieuwe waarde uit de array gehaald, als volgt:
Dit werkt redelijk. Alleen als bijvoorbeeld het bedrag 58.95 van hierboven opgeslagen word en weer opgehaald, dan krijg ik geen 58.95 terug, maar gewoon 58.
Iemand een idee wat ik fout doe? Want ik kom er echt niet meer uit. Heb al google geprobeerd en GoT ook al doorzocht, maar kan geen oplossing vinden...
Ik heb een form met (oa) een listbox, textfield, label en knop
In het textfield kan met een getal invullen (double) en die moet dan bij de waarde van het label opgeteld worden (ook een double)
Dit werkt wel als de waarde van het label 0 is. Als ik dan 29.95 in het tekstvak invul en op de knop druk krijg ik mooi 29.95 in mijn label te staan.
Als ik er dan nog eens 29.95 bij optel wordt het in ene 58.95, terwijl dit (lijkt me) toch echt 58.90 moet zijn...
Code voor het optellen:
code:
1
| label.Caption = Val(label.Caption) + Val(text.Value) |
Dan is er nog een ander probleem, en dat is dat VB de getallen achter de komma niet lijkt te onthouden. Er is een array aangemaakt die voor elk item in de listbox dit getal bijhoudt. Laten we deze array voor de simpelheid ff myArray noemen.
Als men op een ander item van de listbox drukt word de huidige waarde van de label opgeslagen in de array en de nieuwe waarde uit de array gehaald, als volgt:
code:
1
2
3
4
5
6
| 'save 'lastIndex is de listIndex van de listbox voordat deze veranderd was. myArray(lastIndex) = Val(label.Caption) 'load 'index = listbox.listIndex label.Caption = myArray(index) |
Dit werkt redelijk. Alleen als bijvoorbeeld het bedrag 58.95 van hierboven opgeslagen word en weer opgehaald, dan krijg ik geen 58.95 terug, maar gewoon 58.
Iemand een idee wat ik fout doe? Want ik kom er echt niet meer uit. Heb al google geprobeerd en GoT ook al doorzocht, maar kan geen oplossing vinden...