REM ***** BASIC ***** Sub nomNumero() Dim unidades(20), decenas(10), centenas(10), miles(1) As String Dim nombre As String Dim num As Integer Dim veintes As Boolean veintes = False unidades(0) = "cero" unidades(1) = "uno" unidades(2) = "dos" unidades(3) = "tres" unidades(4) = "cuatro" unidades(5) = "cinco" unidades(6) = "seis" unidades(7) = "siete" unidades(8) = "ocho" unidades(9) = "nueve" unidades(10) = "diez" unidades(11) = "once" unidades(12) = "doce" unidades(13) = "trece" unidades(14) = "catorce" unidades(15) = "quince" unidades(16) = "dieciseis" unidades(17) = "diecisiete" unidades(18) = "dieciocho" unidades(19) = "diecinueve" decenas(0) = "veinte" decenas(1) = "diez" decenas(2) = "veinti" decenas(3) = "treinta" decenas(4) = "cuarenta" decenas(5) = "cincuenta" decenas(6) = "sesenta" decenas(7) = "setenta" decenas(8) = "ochenta" decenas(9) = "noventa" centenas(1) = "cien" centenas(2) = "doscientos" centenas(3) = "trescientos" centenas(4) = "cuatrocientos" centenas(5) = "quinientos" centenas(6) = "seiscientos" centenas(7) = "setecientos" centenas(8) = "ochocientos" centenas(9) = "novecientos" miles(1) = "mil" num = Val(InputBox("escribe un numero menor o igual a mil: ")) If num = 1000 Then nombre = miles(1) num = num - 1000 End If If num >= 100 And num < 1000 Then nombre = centenas(Int(num / 100)) num = num - Int(num / 100) * 100 End If If num = 20 Then nombre = nombre & " " & decenas(0) End If If num > 20 Then nombre = nombre & " " & decenas(Int(num / 10)) If Int(num / 10) = 2 Then veintes = True End If num = num - Int(num / 10) * 10 End If If num > 0 And num <= 20 Then if num = 20 then nombre = nombre & unidades(num) elseif veintes Then nombre = nombre & unidades(num) Elseif num <=10 and num <20 then nombre = nombre & " " & unidades(num) else nombre = nombre & " y " & unidades(num) End If End If MsgBox (nombre) End Sub