Function CalCodEan(sCodigo As String) As string
Dim c1, c2 As String
Dim nX, nX2 As Integer
CalCodEan = " " ' de momento en blanco
sCodigo = Trim(sCodigo) ' suprimir blancos por si acaso
If Len(CODIGO) <> 7 And Len(CODIGO) <> 12 Then Exit Function ' solo admite 7 o 12 digitos
c1 = "131313131313"
nX2 = 0
For nX = 1 To Len(sCodigo)
nX2 = nX2 + Val(Mid$(sCodigo, nX, 1)) * Val(Mid$(c1, nX, 1))
Next
nX = Val(Right(Str(nX2), 1)) ' Extraer el valor de la derecha
If nX > 0 Then nX = 10 - nX ' restarlo de 10 si no es ya 0
CalCodEan = trim(str(nX))
End Function