Buena
Karcrack, esta muy claro de entender.
No te gusta más así?
Public Function DecToRoman(ByVal lNum As Long) As String
DecToRoman = Choose(((lNum Mod 10) / 1) + 1, "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")
lNum = lNum - (lNum Mod 10)
If lNum Then
DecToRoman = Choose(((lNum Mod 100) / 10) + 1, "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") & DecToRoman
lNum = lNum - (lNum Mod 100)
If lNum Then
DecToRoman = String$((lNum \ 1000), "M") & Choose(((lNum Mod 1000) / 100) + 1, "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM") & DecToRoman
End If
End If
End Function
De esta manera si es el 7 o el 46 (por ej) no sigue comprobando.
Por cierto y
RomanToDec() que?
DoEvents!