Amigos del foro:
Hace algun tiempo "KL" me indicó un código para una función
personalizada y era el siguiente:
Function DC(Numero As String) As Integer
Dim Mult As Variant, i As Integer, SumaProd As Double
Dim Digito As Integer, RES As Integer
Mult = Array(71, 67, 59, 53, 47, 43, 41, 37, 29, 23, 19, 17, 13,
7, 3)
For i = 1 To Len(Numero)
Digito = Mid(Numero, i, 1)
SumaProd = SumaProd + Digito * Mult(i - 1)
Next i
RES = SumaProd Mod 11
Select Case RES
Case 0, 1
DC = 0
Case 1
DC = 1
Case Else
DC = 11 - RES
End Select
End Function
El anterior código toma las dos matrices y las multiplica de la
siguiente manera:
Constantes: 71, 67, 59, 53, 47, 43, 41, 37, 29, 23, 19, 17, 13, 7,
3
Número dado: 8, 0, 0, 1, 9, 7, 2, 6, 8, 0, 0,
0, 0, 0, 0
Pruducto: 568, 0, 0, 53,423,301,82,222,232, 0, 0, 0, 0, 0, 0
Lo que realmente se pretende es que las multiplique de la siguiente
manera
Constantes: 71, 67, 59, 53, 47, 43, 41, 37, 29, 23, 19,
17, 13, 7, 3
Número dado: 0, 0, 0, 0, 0, 0, 8, 0, 0,
1, 9, 7, 2, 6, 8
Pruducto: 0, 0, 0, 0, 0, 0,328, 0, 0,
23,171,119, 26, 42, 24
Debo modificar la forma como la función lee el "número dado", ya que
las posiciones de la izquierda deben ser llenadas con ceros.
El resultado correcto (con la segunda opcion) es cuatro (4), pero
actualmente me está dando cero (0) porque el "número dado" se
justifica a la izquierda y no a la derecha como es correcto.
Anticipo mis agradecimientos a todos y desde luego a "KL" si mira mi
inquietud.
Cordial saludo,
ElProfe
Leer las respuestas