See if this helps

http://www.vbforums.com/showthread.p...=1#post3210120

Private Function EAN8_Checksum(ByVal EAN8_Barcode As String) As String
        'http://www.barcodeisland.com/ean8.phtml

        Dim ChecksumCalculation As Integer = 0

        Dim Position As Int32 = 1
        For i As Integer = EAN8_Barcode.Length - 1 To 0 Step -1
            If Position Mod 2 = 1 Then
                'odd position
                ChecksumCalculation += Convert.ToInt32(EAN8_Barcode.Substring(i, 1)) * 3
            Else
                'even position
                ChecksumCalculation += Convert.ToInt32(EAN8_Barcode.Substring(i, 1)) * 1
            End If
            Position += 1
        Next

        Dim Checksum As Integer = 10 - (ChecksumCalculation Mod 10)

        Return Convert.ToString(Checksum)
    End Function