convertir numero a texto en excel

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

0 comentarios - convertir numero a texto en excel

Los comentarios se encuentran cerrados