VBA- beginners probleem

Status
Niet open voor verdere reacties.

KaY.NL

Gebruiker
Lid geworden
15 jul 2004
Berichten
981
Hallo,

Ik ben aan het oefenen met VBA. Ik heb een valuta -omrekending gemaakt. Er gaat alleen nog niets fout met het inlezen van de variabele: "koers" en "koersS"

Code:
'variabelen:
Dim vreemdevalutaS As String
Dim koers As Integer
Dim koersS As String
Dim tbllengte As Integer
Dim tbllengteS As String
Dim antwoord As Integer
Dim regelS As String
Dim teller As Integer

'Inlezen scherm + lijst schoonmaken
lstUitkomst.Clear
tbllengteS = txtTabellengte.Text
koersS = txtKoersEuro.Text

'Euro's in het rechtervak
txtEuros = "Euro's"

'Omrekenen
tbllengte = CInt(tbllengteS)
koers = CInt(koersS)

For teller = 1 To tbllengte
  antwoord = teller / koers
  regelS = Str(teller) & "                  " & Str(antwoord)
  lstUitkomst.AddItem (regelS)
Next teller

Waarom wordt "koersS" niet goed gelezen?
 
Hai, :D

Dit is fout: Dim tbllengte As String 'Integer

Ik heb er al string van gemaakt want je leest de property Text uit van het tekstvak en dat is een String!

See Yah! :thumb:
 
Ik snap niet wat je bedoeld? Werkt het niet als Integer?
 
Geplaatst door KaY.NL
Ik snap niet wat je bedoeld? Werkt het niet als Integer?
Wat eerst een string is kun je er later een integer van maken.
tbllengte is een string(door Joost aanbevolen)

Het is nu de bedoeling dat de waarde van tbllengte een numerieke waarde moet gaan bevatten. Je kunt eventueel een (hulp) variabele erbij gaan gebruiken, noem die variabele bijvoorbeeld tbllengte_int.
(die moet je dan ook declareren en wel als integer zijnde)

De omzetting van string naar numeriek:
tbllengte_int = Val(tbllengte)

Dus, de oorspronkelijke waarde die aan de variabele tbllengte als een tekst(string) werd toegekend bevat nu een numerieke waarde, maar dan in de variabele tbllengte_int . Deze variabele moet je dan verder voor de berekening gaan gebruiken. Je kunt immers niet met teksten(strings) een berekening maken, vandaar dat eerst de omzetting met de instructie Val plaats
moet vinden.

Zoals Joost al zei, bevat een tekst-box een string waarde. Die moet dus eerst naar numeriek worden geconverteerd.

Dennis.

@EDIT

VB & VBA beschikt eenmaal geen aparte numeriek invoervak. Heb ooit een procedure gemaakt voor een numeriek invoervak, maar ben de code kwijt geraakt. Maar waarom moeilijk doen als met Val(ue) ook heel makkelijk kan. Daar is de instructie tenslotte ook voor bedoeld.
 
Laatst bewerkt:
Geplaatst door KaY.NL
Ik snap niet wat je bedoeld? Werkt het niet als Integer?

Dat klopt maak er dus zoals voorgesteld een string van en je bent klaar!

Val zoals Dennis het al aangaf klaart de klus maar de door jou gebruikte CInt werkt ook prima!

Voor de rest sluit ik mij bij Dennis aan! ;)
 
Geplaatst door joost verdaasdo
maar de door jou gebruikte CInt werkt ook prima!
Hai Joost,

Inderdaad.

Eerlijk gezegd heb ik niet eens naar de code van @KaY.NL gekeken. Nu pas. Ik concentreerde in het begin alleen maar naar de begrippen string en integer(numeriek).

Groetjes,

Dennis.
 
Hai Dennis, :D

O maakt niet uit hoor jou verhaal klopt ook.

Kay moet gewoon even met een string beginnen dan komt alles goed...:thumb: (enne ik lees ook vaak alleen maar de laatste posting)
 
Thanks!:thumb:

Was even weg, vandaar mijn te late reactie.(koopavond, was een leesbril aan het halen, dan kan ik die code beter lezen. That was the reason)

Dennis.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan