You are on page 1of 4

NumLetras: Funcin para pasar

(convertir) nmeros a letras


Te mostramos como crear tu propia funcin para convertir nmeros a letras, esto puede
serte de mucha utilidad si usas Excel para imprimir facturas o reportes en los que debas
ingresar un nmero en letras.

NOTA: Puedes saltarte todos estos pasos e ir directo a descargar la hoja de Excel con una
macro para convertir los nmeros a letras, si lo deseas. Si quieres que esta funcin este
siempre disponible en tu Excel, puedes descargar e instalar este complemento gratis.
Primero ingresa a VBA presionando las teclas Alt+F11, e inserta un Mdulo (Si ya tienes un
mdulo no necesitas insertar uno nuevo)

Ahora selecciona tu modulo (Module1)

Y en la ventana derecha ingresa este texto:

Y guarda los cambios presionando Ctrl+S o con el botn de Guardar en la barra de


herramientas.
Nota: Si tienes algn problema hasta ahora puedes consultar este artculo, que explica con
mayor detalle cmo crear una funcin propia.

'Funcion para pasar numeros a letras


Function NumLetras(Valor As Currency, Optional MonedaSingular As String =
"", Optional MonedaPlural As String = "") As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte,
lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte,
lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I
As Variant 'Si esta como Option Explicit
Dim ValorEntero As Long
Valor = Round(Valor, 2)
lyCantidad = Int(Valor)
ValorEntero = lyCantidad
lyCentavos = (Valor - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS",
"SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE",
"QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE",
"VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO",
"VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA",
"SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS",
"CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS",
"OCHOCIENTOS", "NOVECIENTOS")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For I = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case I
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y",
Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And
lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For

End If
Next I
Select Case lnNumeroBloques
Case 1
NumLetras = lcBloque
Case 2
NumLetras = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & NumLetras
Case 3
NumLetras = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And
lnTercerDigito = 0, " MILLON", " MILLONES") & NumLetras
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
NumLetras = NumLetras & " " & Format(Str(lyCentavos), "00") & "/100 " &
IIf(ValorEntero = 1, MonedaSingular, MonedaPlural)
End Function

Como usar la funcin para convertir los nmeros a letras.


Puedes usar esta funcin como cualquier otra
ingresando =NumLetras(A7,Dolar,Dolares) en tu hoja de clculo donde:
1. A7 es una cantidad en nmeros o celda que contiene un numero
2. Dlar es opcional y se usa para poner el nombre de la moneda en el texto convertido,
puedes usar otras monedas como Peso, Lempira, Bolivares, etc.
3. Dlares, es tambin opcional y se usa para mostrar la moneda en plural, puedes dejarlo
en blanco o ingresar otra moneda como Pesos, Lempiras, Bolivares, etc.

Si tuviste algn problema o quieres ver una demostracin puedes bajar esta Hoja de
clculo con la funcin ya creada. Si lo que deseas es que esta funcin este siempre
disponible puedes descargar e instalar este complemento de Excel. Si tienes problemas para
instalarlo consulta el artculo para instalar complementos en Excel 2007 o 2010.

You might also like