Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Convertir números en letras con Macros en Excel

| 8 comentarios

Convertir números en letras consiste en colocar textualmente un número, por ejemplo:

43: Cuarenta y tres

28: Veintiocho

812: Ochocientos doce

Este programa puede ser utilizado para redactar facturas, que en algunos caso requiere redactar el monto final:

S/. 575,50: Quinientos setenta y cinco soles 50/100

Para esta ocasión, solicitaremos que se ingrese un número entre el 1 y 999 en un textbox:

Foto 1 - textbox

Y la conversión se realiza con la siguiente programación:

Considerar las combinaciones de las decenas del 10 y 20, ya que estas son diferentes a las demás (no se escribe VEINTE Y CINCO; si no, VEINTICINCO)

Otros Métodos para convertir números en Letras

Además del formulario empleado se han simplificado otros tres métodos usuales.

Convertir números en letras

Estos tres métodos se encuentran en el módulo 1, 2 y 3 del siguiente archivo:

Convertir números en letras

Código para convertir Números en Letras

En el caso del fórmulario el código empleado es el siguiente:

Private Sub CommandButton1_Click()
Total = TextBox1.Text
Centena = Int(Total / 100)
Decena = Int((Total Mod 100) / 10)
Unidad = Int(Total Mod 10)
Select Case Centena
Case 1
If Decena = 0 And Unidad = 0 Then
Centena = "CIEN"
Else
Centena = "CIENTO"
End If
Case 2
Centena = "DOSCIENTOS"
Case 3
Centena = "TRECIENTOS"
Case 4
Centena = "CUATROCIENTOS"
Case 5
Centena = "QUINIENTOS"
Case 6
Centena = "SEISCIENTOS"
Case 7
Centena = "SETECIENTOS"
Case 8
Centena = "OCHOCIENTOS"
Case 9
Centena = "NOVECIENTOS"
End Select
If Unidad <> 0 And Decena = 1 Then
Select Case Unidad
Case 1
decenas = "ONCE"
Unidad = ""
Case 2
Decena = "DOCE"
Unidad = ""
Case 3
Decena = "TRECE"
Unidad = ""
Case 4
Decena = "CATORCE"
Unidad = ""
Case 5
Decena = "QUINCE"
Unidad = ""
Case 6
Decena = "DIECISEIS"
Unidad = ""
Case 7
Decena = "DIECISIETE"
Unidad = ""
Case 8
Decena = "DIECIOCHO"
Unidad = ""
Case 9
Decena = "DIECINUEVE"
Unidad = ""
End Select
End If
If Unidad <> 0 And Decena = 2 Then
Select Case Unidad
Case 1
Decena = "VEINTIUNO"
Unidad = ""
Case 2
Decena = "VEINTIDOS"
Unidad = ""
Case 3
Decena = "VEINTITRES"
Unidad = ""
Case 4
Decena = "VEINTICUATRO"
Unidad = ""
Case 5
Decena = "VEINTICINCO"
Unidad = ""
Case 6
Decena = "VEINTISEIS"
Unidad = ""
Case 7
Decena = "VEINTISIETE"
Unidad = ""
Case 8
Decena = "VEINTIOCHO"
Unidad = ""
Case 9
Decena = "VEINTINUEVE"
Unidad = ""
End Select
End If
If Unidad = 0 Then
Select Case Decena
Case 0
Decena = ""
Case 1
Decena = "DIEZ"
Unidad = ""
Case 2
Decena = "VEINTE"
Unidad = ""
Case 3
Decena = "TREINTA"
Unidad = ""
Case 4
Decena = "CUARENTA"
Unidad = ""
Case 5
Decena = "CINCUENTA"
Unidad = ""
Case 6
Decena = "SESENTA"
Unidad = ""
Case 7
Decena = "SETENTA"
Unidad = ""
Case 8
Decena = "OCHENTA"
Unidad = ""
Case 9
Decena = "NOVENTA"
Unidad = ""
End Select
Else
Select Case Decena
Case 0
Decena = ""
Case 1
Decena = "DIEZ"
Case 2
Decena = "VEINTE"
Case 3
Decena = "TREINTA"
Case 4
Decena = "CUARENTA"
Case 5
Decena = "CINCUENTA"
Case 6
Decena = "SESENTA"
Case 7
Decena = "SETENTA"
Case 8
Decena = "OCHENTA"
Case 9
Decena = "NOVENTA"
End Select
End If
Select Case Unidad
Case 0
Unidad = ""
Case 1
Unidad = "UNO"
Case 2
Unidad = "DOS"
Case 3
Unidad = "TRES"
Case 4
Unidad = "CUATRO"
Case 5
Unidad = "CINCO"
Case 6
Unidad = "SEIS"
Case 7
Unidad = "SIETE"
Case 8
Unidad = "OCHO"
Case 9
Unidad = "NUEVE"
End Select
If Unidad = "" Then
TextBox2 = Centena & " " & Decena
Else
TextBox2 = Centena & " " & Decena & " " & "Y" & " " & Unidad
End If
If Decena = "" Then
TextBox2 = Centena & " " & Unidad
End If
If Centena = "" And Decena = 1 Then
TextBox2 = Decena
End If
If Centena = "" And Decena = 2 Then
TextBox2 = Decena
End If
If Centena = 0 Then
TextBox2 = Decena & " " & "Y" & " " & Unidad
End If
End Sub

Descargar ejemplo completo desde el siguiente enlace:

Convertir números en letras

8 comentarios

  1. Wow...¡¡ es una de las respuestas que he estado buscando durante mucho... sin embargo, al copia el codigo y elaborar el diseño igual al de la muestra, no consigo obtener el resultado de los nùmeros... ¿es posible que puedan publicar un ejemplo en archivo? para que lo pueda analizar y adaptar a mi proyecto... De antemano muchas gracias y perdòn por el abuso de la peticiòn...

    • Hola Oscar

      Actualmente ya existe un archivo con los ejemplos.

      Saludos

    • Señores lo único que tiene que hacer es cambiar las comillas, espero les sirva...

  2. Excelente!
    Todavia no lo probe, pero me parece una buena herramienta.
    LB.

  3. Hola, felicitaciones, eres muy amable al compartir tus conocimientos.
    Respecto a esto no logro realizar el proceso, me envías un ejemplo Excel?
    Gracias

  4. Señores se van a la pestaña programación en Excel. Allí buscan la pestaña EDICIÓN y se van a donde dice REEMPLAZAR. Seguido cambien las comillas que tiene el programa por las que utiliza excel. No les corre porque excel no reconoce esas comillas. Eso es todo.! A mí me corrio el programa y me gusto mucho. Lo voy ampliar para que me reconozca Unidad de mil.

  5. Como hacer que esto mismo convierta números mas grandes ?

  6. buena tarde
    Reemplazar las comillas por las de excel a que se refieren

Deja una respuesta

Los campos requeridos estan marcados con *.