Ayuda con código

Buen día, este código está programado para escribir de números a letras del 0 al 999. O sea hasta un máximo de 3 cifras. Mi pregunta es: ¿Cómo puedo programarlo para que siempre me escriba en número y letra 3 cifras? Osea 001, cero, cero, uno... 010, cero, diez... Etc. Agradezco de antemano su atención.
Public Function NumerosLetras(ByVal value As Double) As String
    Select Case value
        Case 0: NumerosLetras = "cero"
        Case 1: NumerosLetras = "uno"
        Case 2: NumerosLetras = "dos"
        Case 3: NumerosLetras = "tres"
        Case 4: NumerosLetras = "cuatro"
        Case 5: NumerosLetras = "cinco"
        Case 6: NumerosLetras = "seis"
        Case 7: NumerosLetras = "siete"
        Case 8: NumerosLetras = "ocho"
        Case 9: NumerosLetras = "nueve"
        Case 10: NumerosLetras = "diez"
        Case 11: NumerosLetras = "once"
        Case 12: NumerosLetras = "doce"
        Case 13: NumerosLetras = "trece"
        Case 14: NumerosLetras = "catorce"
        Case 15: NumerosLetras = "quince"
        Case Is < 20: NumerosLetras = "dieci" & NumerosLetras(value - 10)
        Case 20: NumerosLetras = "veinte"
        Case Is < 30: NumerosLetras = "veinti" & NumerosLetras(value - 20)
        Case 30: NumerosLetras = "treinta"
        Case 40: NumerosLetras = "cuarenta"
        Case 50: NumerosLetras = "cincuenta"
        Case 60: NumerosLetras = "sesenta"
        Case 70: NumerosLetras = "setenta"
        Case 80: NumerosLetras = "ochenta"
        Case 90: NumerosLetras = "noventa"
        Case Is < 100: NumerosLetras = NumerosLetras(Int(value \ 10) * 10) & " y " & NumerosLetras(value Mod 10)
        Case 100: NumerosLetras = "cien"
        Case Is < 200: NumerosLetras = "ciento " & NumerosLetras(value - 100)
        Case 200, 300, 400, 600, 800: NumerosLetras = NumerosLetras(Int(value \ 100)) & "cientos"
        Case 500: NumerosLetras = "quinientos"
        Case 700: NumerosLetras = "setecientos"
        Case 900: NumerosLetras = "novecientos"
        Case Is < 1000: NumerosLetras = NumerosLetras(Int(value \ 100) * 100) & " " & NumerosLetras(value Mod 100)
    End Select
End Function

1 respuesta

Respuesta
1
Así :)
Public Function NumerosLetras(ByVal value As Double, Optional bPrimeraVez As Boolean = True) As String
    Select Case value
        Case 0: NumerosLetras = "cero"
        Case 1: NumerosLetras = "uno"
        Case 2: NumerosLetras = "dos"
        Case 3: NumerosLetras = "tres"
        Case 4: NumerosLetras = "cuatro"
        Case 5: NumerosLetras = "cinco"
        Case 6: NumerosLetras = "seis"
        Case 7: NumerosLetras = "siete"
        Case 8: NumerosLetras = "ocho"
        Case 9: NumerosLetras = "nueve"
        Case 10: NumerosLetras = "diez"
        Case 11: NumerosLetras = "once"
        Case 12: NumerosLetras = "doce"
        Case 13: NumerosLetras = "trece"
        Case 14: NumerosLetras = "catorce"
        Case 15: NumerosLetras = "quince"
        Case Is < 20: NumerosLetras = "dieci" & NumerosLetras(value - 10, False)
        Case 20: NumerosLetras = "veinte"
        Case Is < 30: NumerosLetras = "veinti" & NumerosLetras(value - 20, False)
        Case 30: NumerosLetras = "treinta"
        Case 40: NumerosLetras = "cuarenta"
        Case 50: NumerosLetras = "cincuenta"
        Case 60: NumerosLetras = "sesenta"
        Case 70: NumerosLetras = "setenta"
        Case 80: NumerosLetras = "ochenta"
        Case 90: NumerosLetras = "noventa"
        Case Is < 100: NumerosLetras = NumerosLetras(Int(value \ 10) * 10, False) & " y " & NumerosLetras(value Mod 10, False)
        Case 100: NumerosLetras = "cien"
        Case Is < 200: NumerosLetras = "ciento " & NumerosLetras(value - 100, False)
        Case 200, 300, 400, 600, 800: NumerosLetras = NumerosLetras(Int(value \ 100), False) & "cientos"
        Case 500: NumerosLetras = "quinientos"
        Case 700: NumerosLetras = "setecientos"
        Case 900: NumerosLetras = "novecientos"
        Case Is < 1000: NumerosLetras = NumerosLetras(Int(value \ 100) * 100, False) & " " & NumerosLetras(value Mod 100, False)
    End Select
    If bPrimeraVez Then
        If value < 10 Then
            NumerosLetras = "cero, cero, " & NumerosLetras
        ElseIf value < 100 Then
            NumerosLetras = "cero, " & NumerosLetras
        End If
    End If
    
End Function
Saludos,
Carlos
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas