Ik zit met een probleempje bij het oplossen van een oefening in VBA.
Het gaat over EG nummers van chemische stoffen. Deze bestaan uit iets in de vorm van "CCC-CCC-R". Waarbij iedere C voor een getal staat en R voor en controle nummer.
Omdat ik verplicht ben een 'string' als input te gebruiken besloot ik de eerste 3 getallen uit de input te knippen. Idem voor de volgende drie getallen.
c123 = eerste drie getallen
c456 = getal 4, 5 en 6
Nu wil ik alles samenvoegen tot een nieuw getal, van de vorm c123456. Jammer genoeg krijg ik steeds een overloop.
Volgens mij heeft het te maken met het bereik van de variabele. Eerst gebruikte ik 'Integer', dit was te klein, maar nu zou alles toch moeten werken via een 'Long'?
(Zie stukje code voor de manier waarop ik dit doe)
(Vermenigvuldigen met 1000 doe ik zodat het verkregen getal meer op de input gaat lijken.)
Code: Selecteer alles
(...)
Dim nieuwnr As Long
egnr = InputBox("Geef het EG nummer op")
c123 = Mid(egnr, 1, 3)
c456 = Mid(egnr, 5, 3)
nieuwnr = (c123 * 1000) + c456
- c123 = 200
- c456 = 1
- nieuwnr = 200001