Você está na página 1de 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 numero 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 Modulo (Si ya tienes
un modulo no necesitas insertar uno nuevo)

Ahora selecciona tu modulo (Module1)

Y en la ventana derecha ingresa este texto:

1 'Funcion para pasar numeros a letras


Function NumLetras(Valor As Currency, Optional MonedaSingular As String =
2
"", Optional MonedaPlural As String = "") As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte,
3 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
4
As Variant 'Si esta como Option Explicit
5
Dim ValorEntero As Long
6
Valor = Round(Valor, 2)
7
lyCantidad = Int(Valor)
8
ValorEntero = lyCantidad
9 lyCentavos = (Valor - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO",
"SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE",
"TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE",
10
"DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS",
"VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS",
"VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA",
11
"CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS",
12 "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS",
"OCHOCIENTOS", "NOVECIENTOS")
13
lnNumeroBloques = 1
14
15
Do
16
lnPrimerDigito = 0
17
lnSegundoDigito = 0
18
lnTercerDigito = 0
19
lcBloque = ""
20
lnBloqueCero = 0
21
For I = 1 To 3
22
lnDigito = lyCantidad Mod 10
23
If lnDigito <> 0 Then
24
Select Case I
25 Case 1
26 lcBloque = " " & laUnidades(lnDigito - 1)
27
lnPrimerDigito = lnDigito
28
Case 2
29 If lnDigito <= 2 Then
30 lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
31 Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, "
32
Y", Null) & lcBloque
33
End If
34
lnSegundoDigito = lnDigito
35 Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And
36
lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
37
lnTercerDigito = lnDigito
38
End Select

39
Else
40
lnBloqueCero = lnBloqueCero + 1
41
End If
42
lyCantidad = Int(lyCantidad / 10)
43
If lyCantidad = 0 Then
44
Exit For
45
End If
46
Next I
47
Select Case lnNumeroBloques
48
Case 1
49
NumLetras = lcBloque
50
Case 2
51 NumLetras = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & NumLetras
52 Case 3
NumLetras = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0
53
And lnTercerDigito = 0, " MILLON", " MILLONES") & NumLetras
54 End Select
55
lnNumeroBloques = lnNumeroBloques + 1
56
Loop Until lyCantidad = 0
NumLetras = NumLetras & " " & Format(Str(lyCentavos), "00") & "/100 " &
57
IIf(ValorEntero = 1, MonedaSingular, MonedaPlural)
58 End Function

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


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

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 calculo donde:
1. A7 es una cantidad en nmeros o celda que contiene un numero
2. Dolar es opcional y se usa para poner el nombre de la moneda en el texto
convertido, puedes usar otras monedas como Peso, Lempira, etc.
3. Dolares, es tambin opcional y se usa para mostrar la moneda en plural, puedes
dejarlo en blanco o ingresar otra moneda como Pesos, Lempiras, etc.
Si tuviste algn problema o quieres ver una demostracin puedes bajar esta Hoja de
calculo con la funcin ya creada. Si lo que deseas es que esta funcion este siempre
disponible pudes descargar e instalar este complemento de excel. Si tienes problemas para
instalarlo consulta el articulo para instalar complementos en Excel 2007 o 2010.

Você também pode gostar