Creating a check digit

G

Guest

Hey guys, I need you help, creating a check digit.

I have a number: 012Q
Base sequence:
0123456789BCDFGHJKLMNPQRSTVWXYZ
I need to return the positions of each char:
0 1 2 22

Then something like: =MOD('0'+'1'+'2'+'22',31)+1
That will result in: 26

The end value I need returned is T as T is at position 26

Your help is much appreciated.
 
T

Tom Ogilvy

Sub AAA()
sStr = "0123456789BCDFGHJKLMNPQRSTVWXYZ"
ReDim arr(0 To Len(sStr) - 1)
For i = 1 To Len(sStr)
arr(i - 1) = Mid(sStr, i, 1)
Next

sStr1 = "012Q"
For i = 1 To Len(sStr1)
res = Application.Match(Mid(sStr1, i, 1), _
arr, 0)
If Not IsError(res) Then
lSum = lSum + res - 1
Else
MsgBox "Bad code"
Exit Sub
End If
Next
res = lSum Mod 31
MsgBox arr(res) & " " & lSum
End Sub

lSum is actually 25, but that gives the 26th element of the array ("T")
since it is zero based.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top