¿ escribir 1500 igual a mil quinientos

07/10/2009 - 22:43 por wallyrios | Informe spam
como hago para convertir un resultado numerico en un resultado escrito en
letras ej si una factura da como total U$ 1500 como hago para que tambien lo
detalle en letras UN MIL QUINIENTOS, yo tengo el office 2003 y quisiera
aplicar este procedimiento con el excel

Preguntas similare

Leer las respuestas

#1 Colombiano26
07/10/2009 - 23:44 | Informe spam
Hola, esta es una pregunta muy frecuente.

Prueba con esto abres Excel em Herramientas->Macros->Editor de VB

Ahi te vas a VBAProject(librox)
Y agregas un modulo (boton derecho en VBAProject) y pegas el siguiente
codigo:

Option Explicit
Public Const Un_Billon = 1000000000000#
Public Const Dos_Billones = 2000000000000#

Public Function NumeroTexto(Valor As Double) As String
Select Case Valor
Case Is <= 100
NumeroTexto = Menor_Cien(Valor)
Case Is < 2000
NumeroTexto = Menor_DosMil(Valor)
Case Is < 2000000
NumeroTexto = Menor_DosCientosMil(Valor)
Case Is < Dos_Billones
NumeroTexto = Menor_DosBillones(Valor)
Case Else
NumeroTexto = NumeroTexto(Int(Valor / Un_Billon)) & " BILLONES"
If (Valor - Int(Valor / Un_Billon) * Un_Billon) Then
NumeroTexto = NumeroTexto & " " & NumeroTexto(Valor - Int(Valor /
Un_Billon) * Un_Billon)
End If
End Select
End Function

Public Function Menor_Cien(Cifra As Double) As String
If Cifra = 0 Then
Menor_Cien = "CERO"
ElseIf Cifra = 1 Then Menor_Cien = "UN"
ElseIf Cifra = 2 Then Menor_Cien = "DOS"
ElseIf Cifra = 3 Then Menor_Cien = "TRES"
ElseIf Cifra = 4 Then Menor_Cien = "CUATRO"
ElseIf Cifra = 5 Then Menor_Cien = "CINCO"
ElseIf Cifra = 6 Then Menor_Cien = "SEIS"
ElseIf Cifra = 7 Then Menor_Cien = "SIETE"
ElseIf Cifra = 8 Then Menor_Cien = "OCHO"
ElseIf Cifra = 9 Then Menor_Cien = "NUEVE"
ElseIf Cifra = 10 Then Menor_Cien = "DIEZ"
ElseIf Cifra = 11 Then Menor_Cien = "ONCE"
ElseIf Cifra = 12 Then Menor_Cien = "DOCE"
ElseIf Cifra = 13 Then Menor_Cien = "TRECE"
ElseIf Cifra = 14 Then Menor_Cien = "CATORCE"
ElseIf Cifra = 15 Then Menor_Cien = "QUINCE"
ElseIf Cifra < 20 Then Menor_Cien = "DIECI" & NumeroTexto(Cifra - 10)
ElseIf Cifra = 20 Then Menor_Cien = "VEINTE"
ElseIf Cifra < 30 Then Menor_Cien = "VEINTI" & NumeroTexto(Cifra -
20)
ElseIf Cifra = 30 Then Menor_Cien = "TREINTA"
ElseIf Cifra = 40 Then Menor_Cien = "CUARENTA"
ElseIf Cifra = 50 Then Menor_Cien = "CINCUENTA"
ElseIf Cifra = 60 Then Menor_Cien = "SESENTA"
ElseIf Cifra = 70 Then Menor_Cien = "SETENTA"
ElseIf Cifra = 80 Then Menor_Cien = "OCHENTA"
ElseIf Cifra = 90 Then Menor_Cien = "NOVENTA"
ElseIf Cifra < 100 Then
Menor_Cien = NumeroTexto(Int(Cifra \ 10) * 10) & " Y " & NumeroTexto
(Cifra Mod 10)
ElseIf Cifra = 100 Then Menor_Cien = "CIEN"
End If
End Function

Public Function Menor_DosMil(Cifra As Double) As String
If Cifra < 200 Then
Menor_DosMil = "CIENTO " & NumeroTexto(Cifra - 100)
ElseIf Cifra = 200 Or Cifra = 300 Or Cifra = 400 Or Cifra = 600 Or
Cifra = 800 Then
Menor_DosMil = NumeroTexto(Int(Cifra \ 100)) & "CIENTOS"
ElseIf Cifra = 500 Then Menor_DosMil = "QUINIENTOS"
ElseIf Cifra = 700 Then Menor_DosMil = "SETECIENTOS"
ElseIf Cifra = 900 Then Menor_DosMil = "NOVECIENTOS"
ElseIf Cifra < 1000 Then
Menor_DosMil = NumeroTexto(Int(Cifra \ 100) * 100) & " " & NumeroTexto
(Cifra Mod 100)
ElseIf Cifra = 1000 Then Menor_DosMil = "MIL"
ElseIf Cifra < 2000 Then Menor_DosMil = "MIL " & NumeroTexto(Cifra Mod
1000)
End If
End Function

Public Function Menor_DosCientosMil(Cifra As Double) As String
If Cifra < 1000000 Then
Menor_DosCientosMil = NumeroTexto(Int(Cifra \ 1000)) & " MIL"
If Cifra Mod 1000 Then
Menor_DosCientosMil = Menor_DosCientosMil & " " & NumeroTexto(Cifra
Mod 1000)
End If
ElseIf Cifra = 1000000 Then Menor_DosCientosMil = "UN MILLON"
ElseIf Cifra < 2000000 Then Menor_DosCientosMil = "UN MILLON " &
NumeroTexto(Cifra Mod 1000000)
End If
End Function

Public Function Menor_DosBillones(Cifra As Double) As String
If Cifra < Un_Billon Then
Menor_DosBillones = NumeroTexto(Int(Cifra / 1000000)) & " MILLONES"
If (Cifra - Int(Cifra / 1000000) * 1000000) Then
Menor_DosBillones = Menor_DosBillones & " " & NumeroTexto(Cifra - Int
(Cifra / 1000000) * 1000000)
End If
ElseIf Cifra = Un_Billon Then Menor_DosBillones = "UN BILLON"
ElseIf Cifra < Dos_Billones Then
Menor_DosBillones = "UN BILLON " & NumeroTexto(Cifra - Int(Cifra /
Un_Billon) * Un_Billon)
End If
End Function

Public Function Recibo(Cifra As Double, Moneda As String) As String
Dim Centimos As Double

Recibo = NumeroTexto(Int(Cifra))
If Int(Cifra) = 1 Then
If Moneda = "EUR" Then
Recibo = Recibo & " EURO"
ElseIf Moneda = "PTA" Then
Recibo = Recibo & " A PESOS"
End If
Else
If Moneda = "EUR" Then
Recibo = Recibo & " EUROS"
ElseIf Moneda = "PTA" Then
Recibo = Recibo & " PESOS"
End If
End If

If Moneda = "PTA" Then
'If InStr(1, Cifra, ",") < 0 Then
Centimos = CDbl(CLng((Cifra - Int(Cifra)) * 100))
'Recibo = Recibo & " " & NumeroTexto(Centimos)
If Centimos = 0 Then
Recibo = Recibo & " " & "00"
Else
Recibo = Recibo & " " & Centimos
End If
If Centimos = 1 Then
Recibo = Recibo & "/100 M.N."
Else
Recibo = Recibo & "/100 M.N."
End If
End If
'End If
End Function

Sub calcular_Euro()
ActiveCell.Value = Recibo(ActiveCell.Value, "EUR")
End Sub

Sub calcular_Pesos()
ActiveCell.Value = Recibo(ActiveCell.Value, "PTA")
End Sub

Este originalmente era para pesetas y Euros yo lo midifique para pesos
y pusiera 00/100 M.N. al final si habia fraciones.

Despues en Excel en Ver-> Barras de herramientas->Formulario
Diseñas un boton y te va apreguntar que macro le quieres asignar
selecionas una y listo. Luego en una celda pones por ejm. 100 y
selecionada esa celda presionas el boton y te cambia de numero a letra
Respuesta Responder a este mensaje
#2 wallyrios
08/10/2009 - 00:00 | Informe spam
Muchas gracias por este aporte, un amigo creo hace muchos años una macro y la
llamo BETO y hacia este procedimiento y bastaba con teclear el +BETO(celda
nro) y convertia los numeros en letras. esta macro la perdi porque hubo que
formatear mi computadora y no guarde al menos uno de los archivos que
contenia esta macro. MUCHAS PERO MUCHAS GRACIAS . OSWALDO

"Colombiano26" escribió:

Hola, esta es una pregunta muy frecuente.

Prueba con esto abres Excel em Herramientas->Macros->Editor de VB

Ahi te vas a VBAProject(librox)
Y agregas un modulo (boton derecho en VBAProject) y pegas el siguiente
codigo:

Option Explicit
Public Const Un_Billon = 1000000000000#
Public Const Dos_Billones = 2000000000000#

Public Function NumeroTexto(Valor As Double) As String
Select Case Valor
Case Is <= 100
NumeroTexto = Menor_Cien(Valor)
Case Is < 2000
NumeroTexto = Menor_DosMil(Valor)
Case Is < 2000000
NumeroTexto = Menor_DosCientosMil(Valor)
Case Is < Dos_Billones
NumeroTexto = Menor_DosBillones(Valor)
Case Else
NumeroTexto = NumeroTexto(Int(Valor / Un_Billon)) & " BILLONES"
If (Valor - Int(Valor / Un_Billon) * Un_Billon) Then
NumeroTexto = NumeroTexto & " " & NumeroTexto(Valor - Int(Valor /
Un_Billon) * Un_Billon)
End If
End Select
End Function

Public Function Menor_Cien(Cifra As Double) As String
If Cifra = 0 Then
Menor_Cien = "CERO"
ElseIf Cifra = 1 Then Menor_Cien = "UN"
ElseIf Cifra = 2 Then Menor_Cien = "DOS"
ElseIf Cifra = 3 Then Menor_Cien = "TRES"
ElseIf Cifra = 4 Then Menor_Cien = "CUATRO"
ElseIf Cifra = 5 Then Menor_Cien = "CINCO"
ElseIf Cifra = 6 Then Menor_Cien = "SEIS"
ElseIf Cifra = 7 Then Menor_Cien = "SIETE"
ElseIf Cifra = 8 Then Menor_Cien = "OCHO"
ElseIf Cifra = 9 Then Menor_Cien = "NUEVE"
ElseIf Cifra = 10 Then Menor_Cien = "DIEZ"
ElseIf Cifra = 11 Then Menor_Cien = "ONCE"
ElseIf Cifra = 12 Then Menor_Cien = "DOCE"
ElseIf Cifra = 13 Then Menor_Cien = "TRECE"
ElseIf Cifra = 14 Then Menor_Cien = "CATORCE"
ElseIf Cifra = 15 Then Menor_Cien = "QUINCE"
ElseIf Cifra < 20 Then Menor_Cien = "DIECI" & NumeroTexto(Cifra - 10)
ElseIf Cifra = 20 Then Menor_Cien = "VEINTE"
ElseIf Cifra < 30 Then Menor_Cien = "VEINTI" & NumeroTexto(Cifra -
20)
ElseIf Cifra = 30 Then Menor_Cien = "TREINTA"
ElseIf Cifra = 40 Then Menor_Cien = "CUARENTA"
ElseIf Cifra = 50 Then Menor_Cien = "CINCUENTA"
ElseIf Cifra = 60 Then Menor_Cien = "SESENTA"
ElseIf Cifra = 70 Then Menor_Cien = "SETENTA"
ElseIf Cifra = 80 Then Menor_Cien = "OCHENTA"
ElseIf Cifra = 90 Then Menor_Cien = "NOVENTA"
ElseIf Cifra < 100 Then
Menor_Cien = NumeroTexto(Int(Cifra \ 10) * 10) & " Y " & NumeroTexto
(Cifra Mod 10)
ElseIf Cifra = 100 Then Menor_Cien = "CIEN"
End If
End Function

Public Function Menor_DosMil(Cifra As Double) As String
If Cifra < 200 Then
Menor_DosMil = "CIENTO " & NumeroTexto(Cifra - 100)
ElseIf Cifra = 200 Or Cifra = 300 Or Cifra = 400 Or Cifra = 600 Or
Cifra = 800 Then
Menor_DosMil = NumeroTexto(Int(Cifra \ 100)) & "CIENTOS"
ElseIf Cifra = 500 Then Menor_DosMil = "QUINIENTOS"
ElseIf Cifra = 700 Then Menor_DosMil = "SETECIENTOS"
ElseIf Cifra = 900 Then Menor_DosMil = "NOVECIENTOS"
ElseIf Cifra < 1000 Then
Menor_DosMil = NumeroTexto(Int(Cifra \ 100) * 100) & " " & NumeroTexto
(Cifra Mod 100)
ElseIf Cifra = 1000 Then Menor_DosMil = "MIL"
ElseIf Cifra < 2000 Then Menor_DosMil = "MIL " & NumeroTexto(Cifra Mod
1000)
End If
End Function

Public Function Menor_DosCientosMil(Cifra As Double) As String
If Cifra < 1000000 Then
Menor_DosCientosMil = NumeroTexto(Int(Cifra \ 1000)) & " MIL"
If Cifra Mod 1000 Then
Menor_DosCientosMil = Menor_DosCientosMil & " " & NumeroTexto(Cifra
Mod 1000)
End If
ElseIf Cifra = 1000000 Then Menor_DosCientosMil = "UN MILLON"
ElseIf Cifra < 2000000 Then Menor_DosCientosMil = "UN MILLON " &
NumeroTexto(Cifra Mod 1000000)
End If
End Function

Public Function Menor_DosBillones(Cifra As Double) As String
If Cifra < Un_Billon Then
Menor_DosBillones = NumeroTexto(Int(Cifra / 1000000)) & " MILLONES"
If (Cifra - Int(Cifra / 1000000) * 1000000) Then
Menor_DosBillones = Menor_DosBillones & " " & NumeroTexto(Cifra - Int
(Cifra / 1000000) * 1000000)
End If
ElseIf Cifra = Un_Billon Then Menor_DosBillones = "UN BILLON"
ElseIf Cifra < Dos_Billones Then
Menor_DosBillones = "UN BILLON " & NumeroTexto(Cifra - Int(Cifra /
Un_Billon) * Un_Billon)
End If
End Function

Public Function Recibo(Cifra As Double, Moneda As String) As String
Dim Centimos As Double

Recibo = NumeroTexto(Int(Cifra))
If Int(Cifra) = 1 Then
If Moneda = "EUR" Then
Recibo = Recibo & " EURO"
ElseIf Moneda = "PTA" Then
Recibo = Recibo & " A PESOS"
End If
Else
If Moneda = "EUR" Then
Recibo = Recibo & " EUROS"
ElseIf Moneda = "PTA" Then
Recibo = Recibo & " PESOS"
End If
End If

If Moneda = "PTA" Then
'If InStr(1, Cifra, ",") < 0 Then
Centimos = CDbl(CLng((Cifra - Int(Cifra)) * 100))
'Recibo = Recibo & " " & NumeroTexto(Centimos)
If Centimos = 0 Then
Recibo = Recibo & " " & "00"
Else
Recibo = Recibo & " " & Centimos
End If
If Centimos = 1 Then
Recibo = Recibo & "/100 M.N."
Else
Recibo = Recibo & "/100 M.N."
End If
End If
'End If
End Function

Sub calcular_Euro()
ActiveCell.Value = Recibo(ActiveCell.Value, "EUR")
End Sub

Sub calcular_Pesos()
ActiveCell.Value = Recibo(ActiveCell.Value, "PTA")
End Sub

Este originalmente era para pesetas y Euros yo lo midifique para pesos
y pusiera 00/100 M.N. al final si habia fraciones.

Despues en Excel en Ver-> Barras de herramientas->Formulario
Diseñas un boton y te va apreguntar que macro le quieres asignar
selecionas una y listo. Luego en una celda pones por ejm. 100 y
selecionada esa celda presionas el boton y te cambia de numero a letra

Respuesta Responder a este mensaje
#3 wallyrios
11/11/2009 - 04:27 | Informe spam
hola nuevamente, encontre un viejo archivo que tenia la macro y si es util
para otros miembros de la comunidad, ahi se las presento.
funciona de la siguiente manera: colocar el numero en una celda que bien
puede ser de un resultado tipo suma total de una factura y esta se encuentra
en una celda especifica, digamos la F7 y se quiere que el resultado salga en
la C10, entonces estando en la C10 hacer +beto(C10) y dara como resultado que
el numero sera deletreado tal cual esta escrito ej 1500 igual Un mil
quinientos.




Sub NROSALETRAS()
'
' beto Macro
' Macro grabada 14/11/95 por Luis A.Ochipinti C.
'
' Método abreviado: CTRL+a
'
Function beto(NumeroArg As Double) As String
Dim Unidad(9)
Dim Decena(9)
Dim Centena(9)
Dim Especial(5)
'NumeroArg = 115321245
nCifra = 0
queda = 0
Flag = "F"
beto = ""
Millones = 0
Millares = 0
Unidades = 0
digitoMillon = 0
digitoMillar = 0
'Tabla de conversion
Unidad(1) = "Uno "
Unidad(2) = "Dos "
Unidad(3) = "Tres "
Unidad(4) = "Cuatro "
Unidad(5) = "Cinco "
Unidad(6) = "Seis "
Unidad(7) = "Siete "
Unidad(8) = "Ocho "
Unidad(9) = "Nueve "
Decena(1) = "Diez "
Decena(2) = "Veinte "
Decena(3) = "Treinta "
Decena(4) = "Cuarenta "
Decena(5) = "Cincuenta "
Decena(6) = "Sesenta "
Decena(7) = "Setenta "
Decena(8) = "Ochenta "
Decena(9) = "Noventa "
Centena(1) = "Ciento "
Centena(2) = "Doscientos "
Centena(3) = "Trescientos "
Centena(4) = "Cuatrocientos "
Centena(5) = "Quinientos "
Centena(6) = "Seiscientos "
Centena(7) = "Setecientos "
Centena(8) = "Ochocientos "
Centena(9) = "Novecientos "
Especial(1) = "Once "
Especial(2) = "Doce "
Especial(3) = "Trece "
Especial(4) = "Catorce "
Especial(5) = "Quince "
If NumeroArg < 1 Then
Exit Function
End If
'Centena de Millon Ejemplo 115,321,245
Millones = Int(NumeroArg / 1000000) 'Millones = 115
If Millones <> 0 Then
nCifra = Int(Millones / 100) 'nCifra = 1
If nCifra <> 0 Then
digitoMillon = nCifra
If Millones = 100 Then
beto = "Cien "
Else
beto = beto & Centena(nCifra)
End If
End If
'Decena de Millon
queda = Int(Millones - digitoMillon * 100) 'queda = 15
nCifra = Int(queda / 10) 'nCifra = 1
If nCifra <> 0 Then
If queda > 10 And queda < 16 Then
beto = beto & Especial(queda - nCifra * 10)
Flag = "V" 'Pasar por alto unidad
Else
beto = beto & Decena(nCifra)
End If
End If
'Unidad de Millon
If Flag = "F" Then
nCifra = Int(Millones - digitoMillon * 100 - nCifra * 10)
'nCifra = 5
If queda > 15 And nCifra > 0 Then
beto = beto & "y " & Unidad(nCifra)
Else
beto = beto & Unidad(nCifra)
End If
End If
If Millones = 1 Then
beto = "Un Millón "
Else
beto = beto & "Millones "
End If
Flag = "F"
End If
'Centena de Millar
Millares = Int((NumeroArg - Millones * 1000000) / 1000) 'Millares = 321
If Millares > 0 Then
nCifra = Int(Millares / 100) 'nCifra = 3
If nCifra > 0 Then
digitoMillar = nCifra
If Millares = 100 Then
beto = "Cien "
Else
beto = beto & Centena(nCifra)
End If
End If
'Decena de Millar
queda = Int(Millares - nCifra * 100) 'queda = 21
nCifra = Int(queda / 10) 'nCifra = 2
If nCifra > 0 Then
If queda > 10 And queda < 16 Then
beto = beto & Especial(queda - nCifra * 10)
Flag = "V" 'Pasar por alto unidad
Else
beto = beto & Decena(nCifra)
End If
End If
'Unidad de millar
If Flag = "F" Then
nCifra = Int(Millares - digitoMillar * 100 - nCifra * 10)
'nCifra = 1
If queda > 15 And nCifra > 0 Then
beto = beto & "y " & Unidad(nCifra)
Else
beto = beto & Unidad(nCifra)
End If
End If
beto = beto & "Mil "
Flag = "F"
End If
'Centena
Unidades = (NumeroArg - Millones * 1000000 - Millares * 1000)
If Unidades > 0 Then
nCifra = Int(Unidades / 100) 'nCifra = 2
If nCifra > 0 Then 'Unidades = 245
If Unidades = 100 Then
beto = beto & "Cien "
Exit Function
Else
beto = beto & Centena(nCifra)
End If
End If
'Decena
queda = Unidades - nCifra * 100 'Queda = 45
nCifra = Int(queda / 10) 'nCifra = 4
If nCifra > 0 Then
If queda > 10 And queda < 16 Then
beto = beto & Especial(queda - nCifra * 10)
Exit Function
Else
beto = beto & Decena(nCifra)
End If
End If
'Unidad
queda = queda - nCifra * 10 'Queda = 5
If queda > 0 Then
If nCifra > 0 Then
beto = beto & "y " & Unidad(queda)
Else
beto = beto & Unidad(queda)
End If
End If
End If
End Function


"wallyrios" escribió:

Muchas gracias por este aporte, un amigo creo hace muchos años una macro y la
llamo BETO y hacia este procedimiento y bastaba con teclear el +BETO(celda
nro) y convertia los numeros en letras. esta macro la perdi porque hubo que
formatear mi computadora y no guarde al menos uno de los archivos que
contenia esta macro. MUCHAS PERO MUCHAS GRACIAS . OSWALDO

"Colombiano26" escribió:

> Hola, esta es una pregunta muy frecuente.
>
> Prueba con esto abres Excel em Herramientas->Macros->Editor de VB
>
> Ahi te vas a VBAProject(librox)
> Y agregas un modulo (boton derecho en VBAProject) y pegas el siguiente
> codigo:
>
> Option Explicit
> Public Const Un_Billon = 1000000000000#
> Public Const Dos_Billones = 2000000000000#
>
> Public Function NumeroTexto(Valor As Double) As String
> Select Case Valor
> Case Is <= 100
> NumeroTexto = Menor_Cien(Valor)
> Case Is < 2000
> NumeroTexto = Menor_DosMil(Valor)
> Case Is < 2000000
> NumeroTexto = Menor_DosCientosMil(Valor)
> Case Is < Dos_Billones
> NumeroTexto = Menor_DosBillones(Valor)
> Case Else
> NumeroTexto = NumeroTexto(Int(Valor / Un_Billon)) & " BILLONES"
> If (Valor - Int(Valor / Un_Billon) * Un_Billon) Then
> NumeroTexto = NumeroTexto & " " & NumeroTexto(Valor - Int(Valor /
> Un_Billon) * Un_Billon)
> End If
> End Select
> End Function
>
> Public Function Menor_Cien(Cifra As Double) As String
> If Cifra = 0 Then
> Menor_Cien = "CERO"
> ElseIf Cifra = 1 Then Menor_Cien = "UN"
> ElseIf Cifra = 2 Then Menor_Cien = "DOS"
> ElseIf Cifra = 3 Then Menor_Cien = "TRES"
> ElseIf Cifra = 4 Then Menor_Cien = "CUATRO"
> ElseIf Cifra = 5 Then Menor_Cien = "CINCO"
> ElseIf Cifra = 6 Then Menor_Cien = "SEIS"
> ElseIf Cifra = 7 Then Menor_Cien = "SIETE"
> ElseIf Cifra = 8 Then Menor_Cien = "OCHO"
> ElseIf Cifra = 9 Then Menor_Cien = "NUEVE"
> ElseIf Cifra = 10 Then Menor_Cien = "DIEZ"
> ElseIf Cifra = 11 Then Menor_Cien = "ONCE"
> ElseIf Cifra = 12 Then Menor_Cien = "DOCE"
> ElseIf Cifra = 13 Then Menor_Cien = "TRECE"
> ElseIf Cifra = 14 Then Menor_Cien = "CATORCE"
> ElseIf Cifra = 15 Then Menor_Cien = "QUINCE"
> ElseIf Cifra < 20 Then Menor_Cien = "DIECI" & NumeroTexto(Cifra - 10)
> ElseIf Cifra = 20 Then Menor_Cien = "VEINTE"
> ElseIf Cifra < 30 Then Menor_Cien = "VEINTI" & NumeroTexto(Cifra -
> 20)
> ElseIf Cifra = 30 Then Menor_Cien = "TREINTA"
> ElseIf Cifra = 40 Then Menor_Cien = "CUARENTA"
> ElseIf Cifra = 50 Then Menor_Cien = "CINCUENTA"
> ElseIf Cifra = 60 Then Menor_Cien = "SESENTA"
> ElseIf Cifra = 70 Then Menor_Cien = "SETENTA"
> ElseIf Cifra = 80 Then Menor_Cien = "OCHENTA"
> ElseIf Cifra = 90 Then Menor_Cien = "NOVENTA"
> ElseIf Cifra < 100 Then
> Menor_Cien = NumeroTexto(Int(Cifra \ 10) * 10) & " Y " & NumeroTexto
> (Cifra Mod 10)
> ElseIf Cifra = 100 Then Menor_Cien = "CIEN"
> End If
> End Function
>
> Public Function Menor_DosMil(Cifra As Double) As String
> If Cifra < 200 Then
> Menor_DosMil = "CIENTO " & NumeroTexto(Cifra - 100)
> ElseIf Cifra = 200 Or Cifra = 300 Or Cifra = 400 Or Cifra = 600 Or
> Cifra = 800 Then
> Menor_DosMil = NumeroTexto(Int(Cifra \ 100)) & "CIENTOS"
> ElseIf Cifra = 500 Then Menor_DosMil = "QUINIENTOS"
> ElseIf Cifra = 700 Then Menor_DosMil = "SETECIENTOS"
> ElseIf Cifra = 900 Then Menor_DosMil = "NOVECIENTOS"
> ElseIf Cifra < 1000 Then
> Menor_DosMil = NumeroTexto(Int(Cifra \ 100) * 100) & " " & NumeroTexto
> (Cifra Mod 100)
> ElseIf Cifra = 1000 Then Menor_DosMil = "MIL"
> ElseIf Cifra < 2000 Then Menor_DosMil = "MIL " & NumeroTexto(Cifra Mod
> 1000)
> End If
> End Function
>
> Public Function Menor_DosCientosMil(Cifra As Double) As String
> If Cifra < 1000000 Then
> Menor_DosCientosMil = NumeroTexto(Int(Cifra \ 1000)) & " MIL"
> If Cifra Mod 1000 Then
> Menor_DosCientosMil = Menor_DosCientosMil & " " & NumeroTexto(Cifra
> Mod 1000)
> End If
> ElseIf Cifra = 1000000 Then Menor_DosCientosMil = "UN MILLON"
> ElseIf Cifra < 2000000 Then Menor_DosCientosMil = "UN MILLON " &
> NumeroTexto(Cifra Mod 1000000)
> End If
> End Function
>
> Public Function Menor_DosBillones(Cifra As Double) As String
> If Cifra < Un_Billon Then
> Menor_DosBillones = NumeroTexto(Int(Cifra / 1000000)) & " MILLONES"
> If (Cifra - Int(Cifra / 1000000) * 1000000) Then
> Menor_DosBillones = Menor_DosBillones & " " & NumeroTexto(Cifra - Int
> (Cifra / 1000000) * 1000000)
> End If
> ElseIf Cifra = Un_Billon Then Menor_DosBillones = "UN BILLON"
> ElseIf Cifra < Dos_Billones Then
> Menor_DosBillones = "UN BILLON " & NumeroTexto(Cifra - Int(Cifra /
> Un_Billon) * Un_Billon)
> End If
> End Function
>
> Public Function Recibo(Cifra As Double, Moneda As String) As String
> Dim Centimos As Double
>
> Recibo = NumeroTexto(Int(Cifra))
> If Int(Cifra) = 1 Then
> If Moneda = "EUR" Then
> Recibo = Recibo & " EURO"
> ElseIf Moneda = "PTA" Then
> Recibo = Recibo & " A PESOS"
> End If
> Else
> If Moneda = "EUR" Then
> Recibo = Recibo & " EUROS"
> ElseIf Moneda = "PTA" Then
> Recibo = Recibo & " PESOS"
> End If
> End If
>
> If Moneda = "PTA" Then
> 'If InStr(1, Cifra, ",") < 0 Then
> Centimos = CDbl(CLng((Cifra - Int(Cifra)) * 100))
> 'Recibo = Recibo & " " & NumeroTexto(Centimos)
> If Centimos = 0 Then
> Recibo = Recibo & " " & "00"
> Else
> Recibo = Recibo & " " & Centimos
> End If
> If Centimos = 1 Then
> Recibo = Recibo & "/100 M.N."
> Else
> Recibo = Recibo & "/100 M.N."
> End If
> End If
> 'End If
> End Function
>
> Sub calcular_Euro()
> ActiveCell.Value = Recibo(ActiveCell.Value, "EUR")
> End Sub
>
> Sub calcular_Pesos()
> ActiveCell.Value = Recibo(ActiveCell.Value, "PTA")
> End Sub
>
> Este originalmente era para pesetas y Euros yo lo midifique para pesos
> y pusiera 00/100 M.N. al final si habia fraciones.
>
> Despues en Excel en Ver-> Barras de herramientas->Formulario
> Diseñas un boton y te va apreguntar que macro le quieres asignar
> selecionas una y listo. Luego en una celda pones por ejm. 100 y
> selecionada esa celda presionas el boton y te cambia de numero a letra
>
Respuesta Responder a este mensaje
#4 Héctor Miguel
11/11/2009 - 04:32 | Informe spam
hola, wally !

(antes y despues de la fecha de la consulta a la que respondes)...
han habido una que otra propuestas al respecto :D

aqui encuentras algunas aternativas SIN macros:
http://www.teladearana.es/todo-info...etras.html

solo necesitas mantener una cierta "relatividad" entre la celda con el numero y la celda con las letras
(y viene explicado en el articulo)

y aqui hay otras opciones con funciones personalizadas (vba)
http://www.teladearana.es/todo-info...etras.html

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida