http://www11.brinkster.com/luism0/
Luis Medina
MENUFazt - Menu Excel Multifunciones
"DAGOBERTO" <DAGO...@discussions.microsoft.com> escribió en el mensaje
news:9E1C961B-8B8D-4CA5...@microsoft.com...
> ALGUIEN QUE TENGA UN COMPLEMERO QUE CONVIERTA UNA CANTIDAD EN NUMERO A UNA
> CANTIDAD EN LETRAS
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.796 / Virus Database: 540 - Release Date: 13/11/2004
Function EnLetras(Valor) As String ' Función Principal '
If Not IsNumeric(Valor) Then
EnLetras = " ¡ La referencia no es un numero ! ":
Exit Function
End If: Dim Moneda As String, Fracs As String, Cents As Integer
If Int(Abs(Valor)) = 1 Then Moneda = " PESO " Else Moneda = " PESOS "
If Right(Letras(Abs(Valor)), 6) = "ILLON " Or Right(Letras(Abs(Valor)), 8)
= "ILLONES " Then Moneda = "DE" & Moneda
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
If Cents = 0 Then EnLetras = "( " & Letras(Int(Abs(Valor))) & Moneda &
Fracs & "00/100 M.N. )" Else
If Cents >= 1 Then EnLetras = "( " & Letras(Int(Abs(Valor))) & Moneda &
Fracs & "0" & Cents & "/100 M.N. )" Else
If Cents >= 10 Then EnLetras = "( " & Letras(Int(Abs(Valor))) & Moneda &
Fracs & Cents & "/100 M.N. )"
End Function
Private Function Letras(Valor) As String
' Función Auxiliar [uso 'exclusivo'de la función 'principal'] '
Select Case Int(Valor)
Case 0: Letras = "CERO"
Case 1: Letras = "UN"
Case 2: Letras = "DOS"
Case 3: Letras = "TRES"
Case 4: Letras = "CUATRO"
Case 5: Letras = "CINCO"
Case 6: Letras = "SEIS"
Case 7: Letras = "SIETE"
Case 8: Letras = "OCHO"
Case 9: Letras = "NUEVE"
Case 10: Letras = "DIEZ"
Case 11: Letras = "ONCE"
Case 12: Letras = "DOCE"
Case 13: Letras = "TRECE"
Case 14: Letras = "CATORCE"
Case 15: Letras = "QUINCE"
Case Is < 20: Letras = "DIECI" & Letras(Valor - 10)
Case 20: Letras = "VEINTE"
Case Is < 30: Letras = "VEINTI" & Letras(Valor - 20)
Case 30: Letras = "TREINTA"
Case 40: Letras = "CUARENTA"
Case 50: Letras = "CINCUENTA"
Case 60: Letras = "SESENTA"
Case 70: Letras = "SETENTA"
Case 80: Letras = "OCHENTA"
Case 90: Letras = "NOVENTA"
Case Is < 100: Letras = Letras(Int(Valor \ 10) * 10) & " Y " &
Letras(Valor Mod 10)
Case 100: Letras = "CIEN"
Case Is < 200: Letras = "CIENTO " & Letras(Valor - 100)
Case 200, 300, 400, 600, 800: Letras = Letras(Int(Valor \ 100)) &
"CIENTOS"
Case 500: Letras = "QUINIENTOS"
Case 700: Letras = "SETECIENTOS"
Case 900: Letras = "NOVECIENTOS"
Case Is < 1000: Letras = Letras(Int(Valor \ 100) * 100) & " " &
Letras(Valor Mod 100)
Case 1000: Letras = "UN MIL"
Case Is < 2000: Letras = "UN MIL " & Letras(Valor Mod 1000)
Case Is < 1000000: Letras = Letras(Int(Valor \ 1000)) & " MIL"
If Valor Mod 1000 Then Letras = Letras & " " & Letras(Valor Mod 1000)
Case 1000000: Letras = "UN MILLON "
Case Is < 2000000: Letras = "UN MILLON " & Letras(Valor Mod 1000000)
Case Is < 1000000000000#: Letras = Letras(Int(Valor / 1000000)) &
"MILLONES "
If (Valor - Int(Valor / 1000000) * 1000000) _
Then Letras = Letras & Letras(Valor - Int(Valor / 1000000) *
1000000)
Case 1000000000000#: Letras = "UN BILLON "
Case Is < 2000000000000#
Letras = "UN BILLON " & Letras(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
Case Else: Letras = Letras(Int(Valor / 1000000000000#)) & " BILLONES "
If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) Then Letras
= Letras & " " & Letras(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
End Select
End Function
"DAGOBERTO" <DAGO...@discussions.microsoft.com> escribió en el mensaje
news:9E1C961B-8B8D-4CA5...@microsoft.com...
Te informo que gran parte de la ayuda y las explicaciones estan en el sitio
web para cada una de las funciones de Menufazt. En especial, la utilidad de
convertir letras a numeros no requiere mayor explicacion: es un formulario
donde seleccionas la celda donde esta el numero y otra celda donde se coloca
el texto. Tambien puedes configurar el tipo de moneda y la forma de los
decimales que desees.
Desde este sitio web tambien puedes descargar una hoja que convierte numeros
a letras, sin macros y que puedes insertar en cualquier libro para
utilzarla.
Un saludo,
Luis Medina
Menufazt - Utilidades en Excel
http://www11.brinkster.com/LUISM0/
"Luis Caro" <LG...@NOSPAMEpm.net.co> escribió en el mensaje
news:erap1AV2...@TK2MSFTNGP14.phx.gbl...
> Hola Luis.Me bajé tu colaboración para la conversión,pero no la
> entiendo.Se puede clarificar un poco?
>
> --
> Cordialmente
> Luis Caro
> lg...@NOSPAMEPM.net.co
> No somos 3.Quitar NOSPAMEPM.Poner epm.y el resto
> http://usuarios.tripod.es/maderascolombianas2
> http://www.geocities.com/maderascolombianas2002
>
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.802 / Virus Database: 545 - Release Date: 11/26/2004
Function EnLetras(Valor) As String ' Función Principal '
If Not IsNumeric(Valor) Then
EnLetras = " La referencia no es un numero ! ":
Exit Function
End If: Dim Moneda As String, Fracs As String, Cents As Integer
If Int(Abs(Valor)) = 1 Then Moneda = " PESO, con " Else Moneda = " PESOS,
con "
If Right(Letras(Abs(Valor)), 6) = "ILLON " Or Right(Letras(Abs(Valor)), 8)
= "ILLONES " Then Moneda = "DEPESOS"
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
If Cents = 0 Then EnLetras = "( " & Letras(Int(Abs(Valor))) & Moneda &
Fracs & "00/100 )" Else
EnLetras = "( " & Letras(Int(Abs(Valor))) & Moneda & Fracs & Cents &
/100 )"
End Function
Private Function Letras(Valor) As String
' Función Auxiliar [uso 'exclusivo'de la funcion 'principal'] '
If (Valor - Int(Valor / 1000000) * 1000000) Then Letras = Letras &
Letras(Valor - Int(Valor / 1000000) * 1000000)
Case 1000000000000#: Letras = "UN BILLON "
Case Is < 2000000000000#
Letras = "UN BILLON " & Letras(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
Case Else: Letras = Letras(Int(Valor / 1000000000000#)) & " BILLONES "
If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) Then Letras
= Letras & " " & Letras(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
End Select
End Function
"DAGOBERTO" <DAGO...@discussions.microsoft.com> escribió en el mensaje
news:9E1C961B-8B8D-4CA5...@microsoft.com...
1. Abres el libro Excel NumeroLetra1 y te ubicas en la Hoja Letra. Tambien
debes tener abierto el libro de la factura.
2. Das click derecho sobre la etiqueta de la Hoja Letra. Seleccionas Mover o
Copiar. En el nuevo dialogo que aparece en el campo "Al libro:" seleccionas
el libro de la factura y abajo marcas "Crear una copia" y das click en
Aceptar. Asi pasa una copia de la Hoja Letra al archivo de factura. Ya
puedes cerrar el libro NumeroLetra1.xls
3. Ahora en el libro factura seleccionas la Hoja Letra. En la celda A2 traes
el valor que quieres convertir en letra (ejemplo: "=Factura!b25").
4. Ahora te ubicas en la Hoja y celda donde quieres ver el valor en letras.
Desde ahi traes el texto en letras que esta en la Hoja Letra rango A10
(ejemplo: "=Letra!a10")
Asi, cada vez que modifiques el valor de la factura, te cambia el valor en
letras.
(Este proceso de traer valores tambien puedes hacerlo mediante codigo VBA)
Un saludo.
Luis Medina
MENUFazt - Menu Excel Multifunciones
http://www11.brinkster.com/luism0/
"Luis Caro" <LG...@NOSPAMEpm.net.co> escribió en el mensaje
news:#lMHpNX2...@TK2MSFTNGP15.phx.gbl...
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
asumiendo q el texto a convertir esta en la celda A1.
Saludos,
KL
"Luis Caro" <LG...@NOSPAMEpm.net.co> wrote in message
news:%23Qn7aCk...@TK2MSFTNGP11.phx.gbl...