ESTE MACRO TE SIRVE PARA QUE CUANDO ESCRIBAS UN NUMERO EN UNA CELDA DE EXCEL ESTE TE APAREZCA CON EL FORMATO DE TEXTO.

EJEMPLO

SI ESCRIBES EN LA CELDA A1
=1458659.56
EL RESULTADO SERA
1,458,659.56 (CON FORMATO DE NUMERO Y SEPARADOR DE LISTAS)

ESTE MACRO TE AYUDARA ESCRIBIENDO LO SIGUIENTE
=PESOS(1458659.56)
Y EL RESULTADO SERA

UN MILLON CUATROCIENTOS CINCUENTA Y OCHO MIL SEISCIENTOS CINCUENTA Y NUEVE PESOS 56/100 M.N.

EL CUAL SE PUEDE AJUSTAR O JUSTIFICAR CON EL COMANDO DE EDICION O PROPIEDADES DE TEXTO DE MUCHAS FORMAS


CODIGO VISUAL BASIC


Attribute VB_Name = "Módulo1"
Public Unidades(16), Decenas(9), Centenas(10)
Sub INICIO()
PESOS (9099999.99)
End Sub

Function PESOS(CANTIDAD)
CCANTIDAD = Str(Format(CANTIDAD, "00.00")
CCANTI = Str(Fix(CANTIDAD))
CCANTI = Right(CCANTI, Len(CCANTI) - 1)
Unidades(0) = ""
Unidades(1) = "UN"
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) = "DIECI"

Decenas(0) = ""
Decenas(1) = "VEINTE"
Decenas(2) = "TREINTA"
Decenas(3) = "CUARENTA"
Decenas(4) = "CINCUENTA"
Decenas(5) = "SESENTA"
Decenas(6) = "SETENTA"
Decenas(7) = "OCHENTA"
Decenas(8) = "NOVENTA"
Decenas(9) = "VEINTI"

Centenas(0) = ""
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"
Centenas(10) = "CIENTO"

If InStr(CCANTIDAD, "." = 0 Then
CDECIMAL = "00/100 M.N."
Else
If Len(Mid(CCANTIDAD, InStr(CCANTIDAD, "." + 1)) = 1 Then
CDECIMAL = Mid(CCANTIDAD, InStr(CCANTIDAD, "." + 1) + "0/100 M.N."
Else
CDECIMAL = Mid(CCANTIDAD, InStr(CCANTIDAD, "." + 1) + "/100 M.N."
End If
End If
PESOS = LETRAS(CCANTI, 9, PESOS)
If Len(PESOS) <> 0 Then
If Len(CCANTI) = 7 And Val(Left(CCANTI, 1)) = 1 Then
PESOS = PESOS + " MILLÓN"
Else
PESOS = PESOS + " MILLONES"
End If
End If
CCANTI = Right(CCANTI, 6)
PESOS = LETRAS(CCANTI, 6, PESOS)
If Len(PESOS) <> 0 Then
If Val(Left(CCANTI, 3)) <> 0 Then
PESOS = PESOS + " MIL"
End If
End If

CCANTI = Right(CCANTI, 3)
PESOS = LETRAS(CCANTI, 3, PESOS)
If Len(PESOS) <> 0 Then
If Val(Left(CCANTI, 3)) = 1 Then
PESOS = PESOS + "PESO"
ElseIf Val(Left(CCANTI, 3)) <> 0 Then
PESOS = PESOS + " PESOS"
Else
PESOS = PESOS + " PESOS"
End If
Else
PESOS = "CERO PESOS"
End If
PESOS = PESOS + " " + CDECIMAL
End Function

Function LETRAS(CCANTI, NUMBER, PESOS)
If Len(CCANTI) = NUMBER Then
If Val(Left(CCANTI, 1)) > 1 Or Val(Mid(CCANTI, 2, 2)) = 0 Or Val(Left(CCANTI, 1)) = 0 Then
PESOS = PESOS + " " + Centenas(Val(Left(CCANTI, 1)))
Else
PESOS = PESOS + " " + Centenas(10)
End If
PESOS = OTRO(CCANTI, PESOS, 2)
ElseIf Len(CCANTI) = NUMBER - 1 Then
If Len(PESOS) = 0 Then
PESOS = OTRO(CCANTI, PESOS, 1)
End If
ElseIf Len(CCANTI) = NUMBER - 2 Then
If Len(PESOS) = 0 Then
PESOS = OTROS(CCANTI, PESOS)
End If
End If
LETRAS = PESOS
End Function

Function OTRO(CCANTI, PESOS, EMPIEZA)
If Val(Mid(CCANTI, EMPIEZA, 1)) >= 3 Then
If Val(Mid(CCANTI, EMPIEZA + 1, 1)) = 0 Then
PESOS = PESOS + " " + Decenas(Val(Mid(CCANTI, EMPIEZA, 1)) - 1) + Unidades(Val(Mid(CCANTI, EMPIEZA + 1, 1)))
Else
PESOS = PESOS + " " + Decenas(Val(Mid(CCANTI, EMPIEZA, 1)) - 1) + " Y " + Unidades(Val(Mid(CCANTI, EMPIEZA + 1, 1)))
End If
ElseIf Val(Mid(CCANTI, EMPIEZA, 1)) >= 2 Then
If Val(Mid(CCANTI, EMPIEZA + 1, 1)) = 0 Then
PESOS = PESOS + " " + Decenas(Val(Mid(CCANTI, EMPIEZA, 1)) - 1) + Unidades(Val(Mid(CCANTI, EMPIEZA + 1, 1)))
Else
PESOS = PESOS + " " + Decenas(9) + Unidades(Val(Mid(CCANTI, EMPIEZA + 1, 1)))
End If
ElseIf Val(Mid(CCANTI, EMPIEZA, 2)) >= 16 Then
PESOS = PESOS + " " + Unidades(16) + Unidades(Val(Mid(CCANTI, EMPIEZA + 1, 1)))
Else
PESOS = PESOS + " " + Unidades(Val(Mid(CCANTI, EMPIEZA, 2)))
End If
OTRO = PESOS
End Function

Function OTROS(CCANTI, PESOS)
If Len(PESOS) = 0 Then
PESOS = PESOS + Unidades(Val(Left(CCANTI, 1)))
End If
OTROS = PESOS
End Function




COPIA Y PEGA TODO EL CODIGO EN UN BLOC DE NOTAS (VE A INICIO Y LUEGO /EJECUTAR/NOTEPAD)
GUARDALO COMO "pesos.bas"

AHORA ABRE EXCEL Y EN UNA HOJA NUEVA O EN LA HOJA QUE QUIERAS UTILIZAR EL MACRO

SI ES OFFICE 2010 TENDRAS QUE GUARDARLA COMO HABILITADA PARA MACROS *.XLSM

1) EN LA FICHA (PROGRAMADOR) DA CLIC EN (VISUAL BASIC)
2) A CONTINUACION SELECCION (ARCHIVO) Y LUEGO (IMPORTAR ARCHIVO)
3) BUSCA EL ARCHIVO (pesos.bas) EN DONDE LO HAYAS GUARDADO
4) CIERRA VISUAL BASIC EN (ARCHIVO) Y LUEGO EN (CERRAR Y VOLVER A MICROSOFT EXCEL)

AHORA EN CUALQUIER PESTAÑA DE TU HOJA DE CALCULO ESCRIBE EL COMANDO EN UNA CELDA

=PESOS(1536.36)

Y TENDRAS TU NUMERO CONVERTIDO A TEXTO

UN MIL QUINIENTOS TREINTA Y SEIS PESOS 36/100 M.N.

SI LO GUARDAS EN EXCEL 2007 O POSTERIORES LA EXTENSION SERIA LA DE UN EXCEL NORMAL *.XLS

SALUDOS Y ESPERO TE AYUDE