¡¡Solución Macro Completa!!!
Les envío la solución, ya que puede ayudar a muchas personas, la creé como función de excel y se adiciona como si fuera una Macro, hago esto ya que no encontré ninguna solución concreta y abierta para ser usada como fórmula de excel, me tocó crear esta y se las estoy compartiendo.
Saludos,
Sebastián Correa.
----------------------------------------------------------------------------------------------------------------
Public Function DV(Nit)
Dim TipoRet, lnRetorno, Arreglo_PA(15), WSuma, WDato, WDig_Ver As Integer
TipoRet = VarType(Nit)
Select Case TipoRet
Case TipoRet = "C"
Nit = Trim(Nit)
Case TipoRet = "N" Or TipoRet = "Y"
Nit = Trim(Str(Nit))
End Select
Arreglo_PA(1) = 71
Arreglo_PA(2) = 67
Arreglo_PA(3) = 59
Arreglo_PA(4) = 53
Arreglo_PA(5) = 47
Arreglo_PA(6) = 43
Arreglo_PA(7) = 41
Arreglo_PA(8) = 37
Arreglo_PA(9) = 29
Arreglo_PA(10) = 23
Arreglo_PA(11) = 19
Arreglo_PA(12) = 17
Arreglo_PA(13) = 13
Arreglo_PA(14) = 7
Arreglo_PA(15) = 3
lnRetorno = 0
WDato = Right(Space(15) + Trim(Nit), 15)
WSuma = 0
WDig_Ver = 0
For I = 1 To 15
WSuma = WSuma + (Val(Mid(WDato, I, 1)) * Arreglo_PA(I))
Next I
WSuma = WSuma Mod 11
If WSuma = 0 Or WSuma = 1 Then
lnRetorno = WSuma
Else
lnRetorno = 11 - WSuma
End If
If TipoRet = "C" Then
DV = Trim(Str(lnRetorno))
Else
DV = lnRetorno
End If
End Function