edufranca, o vba e a função mod no vba, tem certa restrição;para números muito grande irá "falhar".
Não sou o mais indicado para isso, mas creio que uma alternativa é utilizar a combinação de divisão e inteiro, para "suprir" essa restrição.
Não testei, mas experimente:
Sub lpias()
Dim b1 As Variant, b2 As Variant
a = 123456788484#
i = 1
f = 4 'numero de digitos a serem multiplicado'
While (i < a)
i = i * 10
j = j + 1
Wend
d = 1
For k = j To f Step -1
'aqui mod retorna o resto da divisão
'assim tambem obtem o resto da divisão 0,......
b1 = a / 10 ^ k - Int(a / 10 ^ k)
'assim obtem somente a parte numeral depois da virgula
aArray = Split(b1, ",")
b1 = CDec(aArray(1))
b2 = Int(b1 / 10 ^ (k - f))
c = 1
c1 = b2
For p = 1 To f
c = (c1 / 10 - Int(c1 / 10)) * c
aArray = Split(c, ",")
'c = (c1 Mod 10) * c
c = CDec(aArray(1))
c1 = c1 10
Next
'condicao para que pegue a maior multiplicacao'
If c > d Then
d = c
End If
MsgBox d
Next
End Sub
Postado : 20/10/2014 8:38 am