my program formats a textfile. It looks at startpositions in the contenance of it and moves information from one record in another.
If i just give the startpositions as parameter it seems to work.
If i give variables (teller1, ....) it gives me a subscript out of range. what is the problem here?


this is my code:


Sub Formatter()
dim myvar,myvar2,j
dim teller1, teller2, teller3, teller4, teller5, teller6, teller7, teller8, teller9

teller1=83
teller2=90
teller3=94
teller4=97
teller5=101
teller6=104
teller7=108
teller8=111
teller9=115
i = 1


while i < data.getnroflines
if data.getlinenr(clng(i)) then
vcurrentdata = data.vals
vnextdata = data.nextvals

if (vcurrentdata(4) = vnextdata(4)) and _
(vcurrentdata(10) = vnextdata(10)) and _
(vcurrentdata(11) = vnextdata(11)) and _
(vcurrentdata(17) = vnextdata(17)) then



if ((len(cstr(vcurrentdata(teller1))) <> 0) and (len(cstr(vcurrentdata(teller2))) = 0) and (len(cstr(vnextdata(teller2))) <> 0)) then
vcurrentdata(teller2) = vnextdata(teller2)
vcurrentdata(teller3) = vnextdata(teller3)
data.vals = vcurrentdata
j=i+1
data.deleteline(cLng(j))
myvar=msgbox("eerste filter is doorlopen" & vcurrentdata(24))


elseif ((len(cstr(vcurrentdata(teller1))) <> 0) and (len(cstr(vcurrentdata(teller2))) <> 0) and (len(cstr(vcurrentdata(teller4))) = 0) and (len(cstr(vnextdata(teller4))) <> 0)) then

vcurrentdata(teller4) = vnextdata(teller4)
vcurrentdata(teller5) = vnextdata(teller5)
data.vals = vcurrentdata
j=i+1
data.deleteline(cLng(j))
myvar=msgbox("tweede filter is doorlopen")

elseif ((len(cstr(vcurrentdata(teller1))) <> 0) and (len(cstr(vcurrentdata(teller2))) <> 0) and (len(cstr(vcurrentdata(teller4))) <> 0) and (len(cstr(vcurrentdata(teller6))) = 0) and (len(cstr(vnextdata(teller6))) <> 0)) then

vcurrentdata(teller6) = vnextdata(teller6)
vcurrentdata(teller7) = vnextdata(teller7)
data.vals = vcurrentdata
j=i+1
data.deleteline(cLng(j))
myvar=msgbox("derde filter is doorlopen")

elseif ((len(cstr(vcurrentdata(teller1))) <> 0) and (len(cstr(vcurrentdata(teller2))) <> 0) and (len(cstr(vcurrentdata(teller4))) <> 0) and (len(cstr(vcurrentdata(teller6))) <> 0) and (len(cstr(vcurrentdata(teller8))) = 0) and (len(cstr(vnextdata(teller8))) <> 0)) then

vcurrentdata(teller8) = vnextdata(teller8)
vcurrentdata(teller9) = vnextdata(teller9)
data.vals = vcurrentdata
j=i+1
data.deleteline(cLng(j))
myvar=msgbox("vierde filter is doorlopen")

elseif ((len(cstr(vcurrentdata(teller1))) = 0) and (len(cstr(vnextdata(teller1))) = 0) and (len(cstr(vcurrentdata(teller2))) <> 0) and (len(cstr(vnextdata(teller6))) <> 0)) then
vcurrentdata(teller6) = vnextdata(teller6)
vcurrentdata(teller7) = vnextdata(teller7)
data.vals = vcurrentdata
j=i+1
data.deleteline(cLng(j))
myvar=msgbox("vijfde filter is doorlopen")

else
i=i+1
teller1 = teller1 + 7
teller2 = teller2 + 7
teller3 = teller3 + 7
teller4 = teller4 + 7
teller5 = teller5 + 7
teller6 = teller6 + 7
teller7 = teller7 + 7
teller8 = teller8 + 7
teller9 = teller9 + 7
end if
i=i-1

' else

' i=i+1
end if
i=i+1
end if
wend
myvar=msgbox("de export is afgelopen")
End Sub