Foros del Web » Programas, Hardware y Redes » Ofimática »

Formato de números en excel

Estas en el tema de Formato de números en excel en el foro de Ofimática en Foros del Web. Hola: Ojala alguien me puede responder si hay alguna forma de si yo tengo en una celda de excel, por ejemplo, el número 3500 en ...
  #1 (permalink)  
Antiguo 01/07/2004, 13:34
 
Fecha de Ingreso: noviembre-2002
Mensajes: 34
Antigüedad: 12 años
Puntos: 0
Formato de números en excel

Hola:

Ojala alguien me puede responder si hay alguna forma de si yo tengo en una celda de excel, por ejemplo, el número 3500 en otra celda me coloque "tres mil quinientos".

Gracias,
  #2 (permalink)  
Antiguo 01/07/2004, 14:33
Avatar de judoka  
Fecha de Ingreso: enero-2004
Ubicación: viña del mar
Mensajes: 180
Antigüedad: 10 años, 11 meses
Puntos: 3
tienes que oner la siguiente funcion en una macro..

Function num_letras(Numero As Double) As String
Dim Letras As String
Dim HuboCentavos As Boolean
Dim Decimales As Double
Decimales = Numero - Int(Numero)
Numero = Int(Numero)
Dim Numeros(90) As String
Numeros(0) = "cero"
Numeros(1) = "uno"
Numeros(2) = "dos"
Numeros(3) = "tres"
Numeros(4) = "cuatro"
Numeros(5) = "cinco"
Numeros(6) = "seis"
Numeros(7) = "siete"
Numeros(8) = "ocho"
Numeros(9) = "nueve"
Numeros(10) = "diez"
Numeros(11) = "once"
Numeros(12) = "doce"
Numeros(13) = "trece"
Numeros(14) = "catorce"
Numeros(15) = "quince"
Numeros(20) = "veinte"
Numeros(30) = "treinta"
Numeros(40) = "cuarenta"
Numeros(50) = "cincuenta"
Numeros(60) = "sesenta"
Numeros(70) = "setenta"
Numeros(80) = "ochenta"
Numeros(90) = "noventa"
Do
'*---> Centenas de Millón
If (Numero < 1000000000) And (Numero >= 100000000) Then
If (Int(Numero / 100000000) = 1) And ((Numero - (Int(Numero / 100000000) * 100000000)) < 1000000) Then
Letras = Letras & "cien millones "
Else
Select Case Int(Numero / 100000000)
Case 1
Letras = Letras & "ciento"
Case 5
Letras = Letras & "quinientos"
Case 7
Letras = Letras & "setecientos"
Case 9
Letras = Letras & "novecientos"
Case Else
Letras = Letras & Numeros(Int(Numero / 100000000))
End Select
If (Int(Numero / 100000000) <> 1) And (Int(Numero / 100000000) <> 5) And (Int(Numero / 100000000) <> 7) And (Int(Numero / 100000000) <> 9) Then
Letras = Letras & "cientos "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100000000) * 100000000)
End If
'*---> Decenas de Millón
If (Numero < 100000000) And (Numero >= 10000000) Then
If Int(Numero / 1000000) < 16 Then
Letras = Letras & Numeros(Int(Numero / 1000000))
Letras = Letras & " millones "
Numero = Numero - (Int(Numero / 1000000) * 1000000)
Else
Letras = Letras & Numeros(Int(Numero / 10000000) * 10)
Numero = Numero - (Int(Numero / 10000000) * 10000000)
If Numero > 1000000 Then
Letras = Letras & " y "
End If
End If
End If
'*---> Unidades de Millón
If (Numero < 10000000) And (Numero >= 1000000) Then
If Int(Numero / 1000000) = 1 Then
Letras = Letras & " un millón "
Else
Letras = Letras & Numeros(Int(Numero / 1000000))
Letras = Letras & " millones "
End If
Numero = Numero - (Int(Numero / 1000000) * 1000000)
End If
'*---> Centenas de Millar
If (Numero < 1000000) And (Numero >= 100000) Then
If (Int(Numero / 100000) = 1) And ((Numero - (Int(Numero / 100000) * 100000)) < 1000) Then
Letras = Letras & "cien mil "
Else
Select Case Int(Numero / 100000)
Case 1
Letras = Letras & "ciento"
Case 5
Letras = Letras & "quinientos"
Case 7
Letras = Letras & "setecientos"
Case 9
Letras = Letras & "novecientos"
Case Else
Letras = Letras & Numeros(Int(Numero / 100000))
End Select
If (Int(Numero / 100000) <> 1) And (Int(Numero / 100000) <> 5) And (Int(Numero / 100000) <> 7) And (Int(Numero / 100000) <> 9) Then
Letras = Letras & "cientos "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100000) * 100000)
End If
'*---> Decenas de Millar
If (Numero < 100000) And (Numero >= 10000) Then
If Int(Numero / 1000) < 16 Then
Letras = Letras & Numeros(Int(Numero / 1000))
Letras = Letras & " mil "
Numero = Numero - (Int(Numero / 1000) * 1000)
Else
Letras = Letras & Numeros(Int(Numero / 10000) * 10)
Numero = Numero - (Int((Numero / 10000)) * 10000)
If Numero > 1000 Then
Letras = Letras & " y "
Else
Letras = Letras & " mil "
End If
End If
End If
'*---> Unidades de Millar
If (Numero < 10000) And (Numero >= 1000) Then
If Int(Numero / 1000) = 1 Then
Letras = Letras & "un"
Else
Letras = Letras & Numeros(Int(Numero / 1000))
End If
Letras = Letras & " mil "
Numero = Numero - (Int(Numero / 1000) * 1000)
End If
'*---> Centenas
If (Numero < 1000) And (Numero > 99) Then
If (Int(Numero / 100) = 1) And ((Numero - (Int(Numero / 100) * 100)) < 1) Then
Letras = Letras & "cien "
Else
Select Case Int(Numero / 100)
Case 1
Letras = Letras & "ciento"
Case 5
Letras = Letras & "quinientos"
Case 7
Letras = Letras & "setecientos"
Case 9
Letras = Letras & "novecientos"
Case Else
Letras = Letras & Numeros(Int(Numero / 100))
End Select
If (Int(Numero / 100) <> 1) And (Int(Numero / 100) <> 5) And (Int(Numero / 100) <> 7) And (Int(Numero / 100) <> 9) Then
Letras = Letras & "cientos "
Else
Letras = Letras & " "
End If
End If
Numero = Numero - (Int(Numero / 100) * 100)
End If
'*---> Decenas
If (Numero < 100) And (Numero > 9) Then
If Numero < 16 Then
Letras = Letras & Numeros(Int(Numero))
Numero = Numero - Int(Numero)
Else
Letras = Letras & Numeros(Int((Numero / 10)) * 10)
Numero = Numero - (Int((Numero / 10)) * 10)
If Numero > 0.99 Then
Letras = Letras & " y "
End If
End If
End If
'*---> Unidades
If (Numero < 10) And (Numero > 0.99) Then
Letras = Letras & Numeros(Int(Numero))
Numero = Numero - Int(Numero)
End If
Loop Until (Numero = 0)
'num_letras = Letras
End Function

luego la puedes usar en funciones/ definidas por el usuario, como una funcion comun y corriente.

no encontre la mia pero para salir del apuro encontre esta macro por ahi en la web..
__________________
hay tres tipos de matemáticos, los que saben contar y los que no.
Oscar

Última edición por judoka; 01/07/2004 a las 16:11
  #3 (permalink)  
Antiguo 10/07/2004, 09:49
Avatar de Franc_  
Fecha de Ingreso: mayo-2002
Ubicación: Lima
Mensajes: 105
Antigüedad: 12 años, 7 meses
Puntos: 0
UNa mejor respuesta

Sollo indicas la macro se deb hacer algo mas, porque no funciona
__________________
Franc_ ===>>
  #4 (permalink)  
Antiguo 11/07/2004, 21:43
Avatar de judoka  
Fecha de Ingreso: enero-2004
Ubicación: viña del mar
Mensajes: 180
Antigüedad: 10 años, 11 meses
Puntos: 3
creando la macro, se crea una función

luego en una celdapones funciones/ definidas por el usuario, la funcion num_letras que creaste con la macro.
por ejemplo en la celda b5 pones
= num_letras(a5)
__________________
hay tres tipos de matemáticos, los que saben contar y los que no.
Oscar
  #5 (permalink)  
Antiguo 11/07/2004, 22:11
Avatar de jesusbet
(Desactivado)
 
Fecha de Ingreso: mayo-2004
Ubicación: Monterrey, MX
Mensajes: 2.667
Antigüedad: 10 años, 7 meses
Puntos: 2
Muy buena la información... gracias
  #6 (permalink)  
Antiguo 12/07/2004, 05:48
Avatar de tania
Colaborador
 
Fecha de Ingreso: agosto-2002
Ubicación: Milano
Mensajes: 4.425
Antigüedad: 12 años, 3 meses
Puntos: 23
Judoka

muy buena respuesta!! gracias

podrias darnos el link donde sacaste la info?
__________________
Evitemos abrir post con títulos "Ayuda..." "Urgente..." le quitan valor a nuestro motor de búsqueda y por otra parte, escribe de manera correcta , quien te lea y quiere ayudarte, no pierde tiempo al descifrar lo que escribiste.
  #7 (permalink)  
Antiguo 13/07/2004, 08:01
Avatar de judoka  
Fecha de Ingreso: enero-2004
Ubicación: viña del mar
Mensajes: 180
Antigüedad: 10 años, 11 meses
Puntos: 3
La verdad es que no tengo idea de donde lo copie , lo busque en el google y no me acuerdo de la página.
__________________
hay tres tipos de matemáticos, los que saben contar y los que no.
Oscar
  #8 (permalink)  
Antiguo 18/02/2006, 10:37
 
Fecha de Ingreso: febrero-2006
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
De acuerdo Quería que lo supieran...

hola!! He conocido el foro gracias a una publicación, aquí en Capital, de computación. Está muy interesante!!! Y estoy muy interesada en esta función, pero no lo logro!!! Debo decir a mi favor que son mis primeras armas. Muchas gracias
  #9 (permalink)  
Antiguo 20/02/2006, 06:28
Avatar de nicaca  
Fecha de Ingreso: octubre-2004
Mensajes: 511
Antigüedad: 10 años, 1 mes
Puntos: 2
ya estaba

Convertir números a letras en Excel

Ya que mediante el formato de Excel no es posible, la solución puede ser crear un módulo de Visual Basic que nos realice el trabajo. Afortunadamente, Microsoft nos ofrece otra alternativa en su página web del área de descarga de Excel. Se trata de utilizar una función llamada Recibo, que se encuentra en una librería dinámica y que puede llamarse desde Excel definiendo una función.

Veamos los pasos a seguir:

Descargamos a nuestro disco duro el archivo E10467.EXE de la dirección http://www.microsoft.com/spain/suppo...les/E10467.EXE

El archivo E10467.EXE contiene dos archivos empaquetados: DLLTCAST.DLL y E10467.DOC. El primero es la librería dinámica que contiene la función Recibo y el segundo es un archivo de Word con las instrucciones para utilizar en Excel la función. Ejecutamos el archivo E10467.EXE y copiamos el archivo DLLTCAST.DLL a la carpeta c:\windows\system de nuestro disco duro.

Arrancamos Excel y en un nuevo libro o en el que necesitemos utilizar la conversión de números a letras, insertamos un nuevo módulo de Visual Basic. En Excel 2000 mediante el menú Herramientas--Macro--Editor de Visual Basic y a continuación ejecutando en este editor el comando Insertar--Módulo.

Escribimos el código siguiente en el módulo:
Declare Sub Recibo Lib "dlltcast.dll" (cifra As Long, ByVal texto As String)
Function letras(minumero)
Dim texto As String * 255
Dim cifra As Long
texto = String(255, 0)
cifra = CLng(minumero)
Call Recibo(cifra, texto)
letras = texto
End Function

Guardamos el libro de trabajo y cerramos el editor de Visual Basic. Probamos a utilizar la función en la hoja de cálculo en la que hemos definido la función escribiendo =letra(Número). Siendo número un valor numérico o una referencia de celda que contenga un número. Por ejemplo: =letra(56789) o =letra(B2).

En el archivo de Word E10467.DOC podemos ver la forma de utilizar la función desde cualquier hoja de cálculo sin tener que definirla nuevamente.



http://www.galeon.com/ortihuela/trucosexcel.htm
__________________
Desde el Fín del Mundo....
  #10 (permalink)  
Antiguo 17/04/2006, 18:22
Avatar de Crashman  
Fecha de Ingreso: junio-2004
Mensajes: 335
Antigüedad: 10 años, 5 meses
Puntos: 0
No existe la libreria

Cita:
Iniciado por nicaca
Convertir números a letras en Excel

Ya que mediante el formato de Excel no es posible, la solución puede ser crear un módulo de Visual Basic que nos realice el trabajo. Afortunadamente, Microsoft nos ofrece otra alternativa en su página web del área de descarga de Excel. Se trata de utilizar una función llamada Recibo, que se encuentra en una librería dinámica y que puede llamarse desde Excel definiendo una función.

Veamos los pasos a seguir:

Descargamos a nuestro disco duro el archivo E10467.EXE de la dirección http://www.microsoft.com/spain/suppo...les/E10467.EXE

El archivo E10467.EXE contiene dos archivos empaquetados: DLLTCAST.DLL y E10467.DOC. El primero es la librería dinámica que contiene la función Recibo y el segundo es un archivo de Word con las instrucciones para utilizar en Excel la función. Ejecutamos el archivo E10467.EXE y copiamos el archivo DLLTCAST.DLL a la carpeta c:\windows\system de nuestro disco duro.

Arrancamos Excel y en un nuevo libro o en el que necesitemos utilizar la conversión de números a letras, insertamos un nuevo módulo de Visual Basic. En Excel 2000 mediante el menú Herramientas--Macro--Editor de Visual Basic y a continuación ejecutando en este editor el comando Insertar--Módulo.

Escribimos el código siguiente en el módulo:
Declare Sub Recibo Lib "dlltcast.dll" (cifra As Long, ByVal texto As String)
Function letras(minumero)
Dim texto As String * 255
Dim cifra As Long
texto = String(255, 0)
cifra = CLng(minumero)
Call Recibo(cifra, texto)
letras = texto
End Function

Guardamos el libro de trabajo y cerramos el editor de Visual Basic. Probamos a utilizar la función en la hoja de cálculo en la que hemos definido la función escribiendo =letra(Número). Siendo número un valor numérico o una referencia de celda que contenga un número. Por ejemplo: =letra(56789) o =letra(B2).

En el archivo de Word E10467.DOC podemos ver la forma de utilizar la función desde cualquier hoja de cálculo sin tener que definirla nuevamente.



http://www.galeon.com/ortihuela/trucosexcel.htm
Al parecer el link no funciona o ya no esta disponible la libreria la pregunta es si me pueden proveer alguno de uds la misma y si esta funciona con office 03
__________________
En la politica el unico ministerio que sale bien ante el pueblo es la iglesia, promete vida despues de la muerte y nadie a regresado a reclamar...
  #11 (permalink)  
Antiguo 18/04/2006, 00:58
Colaborador
 
Fecha de Ingreso: agosto-2004
Mensajes: 1.559
Antigüedad: 10 años, 3 meses
Puntos: 41
Encontré éste otro desarrollo, ojalá les sea útil...

http://www.lawebdelprogramador.com/t...umeroletra.php

Saludos...
  #12 (permalink)  
Antiguo 18/04/2006, 01:11
Colaborador
 
Fecha de Ingreso: agosto-2004
Mensajes: 1.559
Antigüedad: 10 años, 3 meses
Puntos: 41
Convertir números a letras

Encontré éste otro, no logré "subir" el archivo *.xls, pero copio la macro:

'Funcion para convertir los numeros a caracteres.
'Guadalupe Leija Flores ([email protected])
'INFONAVIT NUEVO LEON
' 8130-3144

Function Num_texto(Numero)
Dim Texto
Dim Millones
Dim Miles
Dim Cientos
Dim Decimales
Dim Cadena
Dim CadMillones
Dim CadMiles
Dim CadCientos
Texto = Numero
Texto = FormatNumber(Texto, 2)
Texto = Right(Space(14) & Texto, 14)
Millones = Mid(Texto, 1, 3)
Miles = Mid(Texto, 5, 3)
Cientos = Mid(Texto, 9, 3)
Decimales = Mid(Texto, 13, 2)
CadMillones = ConvierteCifra(Millones, 1)
CadMiles = ConvierteCifra(Miles, 1)
CadCientos = ConvierteCifra(Cientos, 0)
If Trim(CadMillones) > "" Then
If Trim(CadMillones) = "UN" Then
Cadena = CadMillones & " MILLON"
Else
Cadena = CadMillones & " MILLONES"
End If
End If
If Trim(CadMiles) > "" Then
Cadena = Cadena & " " & CadMiles & " MIL"
End If
If Trim(CadMiles & CadCientos) = "UN" Then
Cadena = Cadena & "UNO CON " & Decimales & "/100"
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales & "/100"
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales & "/100"
End If
End If
Num_texto = Trim(Cadena)
End Function

Function ConvierteCifra(Texto, SW)
Dim Centena
Dim Decena
Dim Unidad
Dim txtCentena
Dim txtDecena
Dim txtUnidad
Centena = Mid(Texto, 1, 1)
Decena = Mid(Texto, 2, 1)
Unidad = Mid(Texto, 3, 1)
Select Case Centena
Case "1"
txtCentena = "CIEN"
If Decena & Unidad <> "00" Then
txtCentena = "CIENTO"
End If
Case "2"
txtCentena = "DOSCIENTOS"
Case "3"
txtCentena = "TRESCIENTOS"
Case "4"
txtCentena = "CUATROCIENTOS"
Case "5"
txtCentena = "QUINIENTOS"
Case "6"
txtCentena = "SEISCIENTOS"
Case "7"
txtCentena = "SETECIENTOS"
Case "8"
txtCentena = "OCHOCIENTOS"
Case "9"
txtCentena = "NOVECIENTOS"
End Select

Select Case Decena
Case "1"
txtDecena = "DIEZ"
Select Case Unidad
Case "1"
txtDecena = "ONCE"
Case "2"
txtDecena = "DOCE"
Case "3"
txtDecena = "TRECE"
Case "4"
txtDecena = "CATORCE"
Case "5"
txtDecena = "QUINCE"
Case "6"
txtDecena = "DIECISEIS"
Case "7"
txtDecena = "DIECISIETE"
Case "8"
txtDecena = "DIECIOCHO"
Case "9"
txtDecena = "DIECINUEVE"
End Select
Case "2"
txtDecena = "VEINTE"
If Unidad <> "0" Then
txtDecena = "VEINTI"
End If
Case "3"
txtDecena = "TREINTA"
If Unidad <> "0" Then
txtDecena = "TREINTA Y "
End If
Case "4"
txtDecena = "CUARENTA"
If Unidad <> "0" Then
txtDecena = "CUARENTA Y "
End If
Case "5"
txtDecena = "CINCUENTA"
If Unidad <> "0" Then
txtDecena = "CINCUENTA Y "
End If
Case "6"
txtDecena = "SESENTA"
If Unidad <> "0" Then
txtDecena = "SESENTA Y "
End If
Case "7"
txtDecena = "SETENTA"
If Unidad <> "0" Then
txtDecena = "SETENTA Y "
End If
Case "8"
txtDecena = "OCHENTA"
If Unidad <> "0" Then
txtDecena = "OCHENTA Y "
End If
Case "9"
txtDecena = "NOVENTA"
If Unidad <> "0" Then
txtDecena = "NOVENTA Y "
End If
End Select

If Decena <> "1" Then
Select Case Unidad
Case "1"
If SW Then
txtUnidad = "UN"
Else
txtUnidad = "UNO"
End If
Case "2"
txtUnidad = "DOS"
Case "3"
txtUnidad = "TRES"
Case "4"
txtUnidad = "CUATRO"
Case "5"
txtUnidad = "CINCO"
Case "6"
txtUnidad = "SEIS"
Case "7"
txtUnidad = "SIETE"
Case "8"
txtUnidad = "OCHO"
Case "9"
txtUnidad = "NUEVE"
End Select
End If
ConvierteCifra = txtCentena & " " & txtDecena & txtUnidad
End Function


Para que funcione, en la hoja de Excel escribir en la celda que deseamos que aparezca el texto la función " =NUM_TEXTO(CELDA) " y entre parentésis la celda en la que escribiremos el número a convertir.

SAludos....
  #13 (permalink)  
Antiguo 12/09/2007, 20:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 7 años, 3 meses
Puntos: 0
Re: Formato de números en excel

hOLA
puedes agregaruna macro donde la cifra 2,5 aparezca asi: Dos coma Cinco, ya que he modificado de varias formas las macros q he bajado y no logro dar con la correcta.
te lo agradeceria,si no es mucha molestia
aate
Ulises
  #14 (permalink)  
Antiguo 12/09/2007, 20:29
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.088
Antigüedad: 7 años, 8 meses
Puntos: 85
De acuerdo Formato de números en Excel

Aquí les dejo dos opciones más que ya vienen preparados para su aplicación:

http://savefile.com/files/1051130

http://savefile.com/files/1051131

Saludos

Última edición por mrocf; 13/09/2007 a las 13:22 Razón: Enlaces incorrectos
  #15 (permalink)  
Antiguo 14/09/2007, 10:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 7 años, 3 meses
Puntos: 0
Re: Formato de números en Excel

Cita:
Iniciado por mrocf Ver Mensaje
Aquí les dejo dos opciones más que ya vienen preparados para su aplicación:

http://savefile.com/files/1051130

http://savefile.com/files/1051131

Saludos
te agradezco la ayuda, pero lamentablemente no soluciona mi problema, ya que no puedo hacer que los decimales me salgan escritos con letra, siguen saliendo con numero y ya no se como ni que parte de la macro modificar para que funcione
aclaro que no necesito convertir cifras en moneda sin numero y decimal

gracias nuevamente y si tienes otra ayuda te lo agradecere aun mas
  #16 (permalink)  
Antiguo 14/09/2007, 15:15
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.088
Antigüedad: 7 años, 8 meses
Puntos: 85
De acuerdo Formato de números en excel

Hola! Huflo26:
Observa que lo que estás buscando: 2,5 = Dos coma Cinco, no es sino:

"Parte Entera" & " coma " & "Parte Decimal"

Pues entonces solo debes alimentar a los procedimientos anteriores dos veces: primero con la parte entera y después con la parte decimal... Juntas los dos resultadosc omo antes te comentara... y listo.

Por supuesto, debes quitar del procedimiento que utilices la mención a la "moneda" y a la "parte decimal con números".

Suerte.
  #17 (permalink)  
Antiguo 20/09/2007, 02:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 7 años, 3 meses
Puntos: 0
Re: Formato de números en excel

Cita:
Iniciado por mrocf Ver Mensaje
Hola! Huflo26:
Observa que lo que estás buscando: 2,5 = Dos coma Cinco, no es sino:

"Parte Entera" & " coma " & "Parte Decimal"

Pues entonces solo debes alimentar a los procedimientos anteriores dos veces: primero con la parte entera y después con la parte decimal... Juntas los dos resultadosc omo antes te comentara... y listo.

Por supuesto, debes quitar del procedimiento que utilices la mención a la "moneda" y a la "parte decimal con números".

Suerte.
Hola y perdon por lo cabezon,jajaj
agradezcl la ayuda pero sinceramente no se que linea modificar para que el procedimiento sea el correcto
estoy ocupando la siguiente macro:

Function Num_texto(Numero)
Dim Texto
Dim Millones
Dim Miles
Dim Cientos
Dim Decimales
Dim Cadena
Dim CadMillones
Dim CadMiles
Dim CadCientos
Texto = Numero
Texto = FormatNumber(Texto, 2)
Texto = Right(Space(14) & Texto, 14)
Millones = Mid(Texto, 1, 3)
Miles = Mid(Texto, 5, 3)
Cientos = Mid(Texto, 9, 3)
Decimales = Mid(Texto, 13, 2)
CadMillones = ConvierteCifra(Millones, 1)
CadMiles = ConvierteCifra(Miles, 1)
CadCientos = ConvierteCifra(Cientos, 0)
If Trim(CadMillones) > "" Then
If Trim(CadMillones) = "UN" Then
Cadena = CadMillones & " MILLON"
Else
Cadena = CadMillones & " MILLONES"
End If
End If
If Trim(CadMiles) > "" Then
Cadena = Cadena & " " & CadMiles & " MIL"
End If
If Trim(CadMiles & CadCientos) = "UN" Then
Cadena = Cadena & "UNO CON " & Decimales
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales
End If
End If
Num_texto = Trim(Cadena)
End Function

Function ConvierteCifra(Texto, SW)
Dim Centena
Dim Decena
Dim Unidad
Dim txtCentena
Dim txtDecena
Dim txtUnidad
Centena = Mid(Texto, 1, 1)
Decena = Mid(Texto, 2, 1)
Unidad = Mid(Texto, 3, 1)
Select Case Centena
Case "1"
txtCentena = "CIEN"
If Decena & Unidad <> "00" Then
txtCentena = "CIENTO"
End If
Case "2"
txtCentena = "DOSCIENTOS"
Case "3"
txtCentena = "TRESCIENTOS"
Case "4"
txtCentena = "CUATROCIENTOS"
Case "5"
txtCentena = "QUINIENTOS"
Case "6"
txtCentena = "SEISCIENTOS"
Case "7"
txtCentena = "SETECIENTOS"
Case "8"
txtCentena = "OCHOCIENTOS"
Case "9"
txtCentena = "NOVECIENTOS"
End Select

Select Case Decena
Case "1"
txtDecena = "DIEZ"
Select Case Unidad
Case "1"
txtDecena = "ONCE"
Case "2"
txtDecena = "DOCE"
Case "3"
txtDecena = "TRECE"
Case "4"
txtDecena = "CATORCE"
Case "5"
txtDecena = "QUINCE"
Case "6"
txtDecena = "DIECISEIS"
Case "7"
txtDecena = "DIECISIETE"
Case "8"
txtDecena = "DIECIOCHO"
Case "9"
txtDecena = "DIECINUEVE"
End Select
Case "2"
txtDecena = "VEINTE"
If Unidad <> "0" Then
txtDecena = "VEINTI"
End If
Case "3"
txtDecena = "TREINTA"
If Unidad <> "0" Then
txtDecena = "TREINTA Y "
End If
Case "4"
txtDecena = "CUARENTA"
If Unidad <> "0" Then
txtDecena = "CUARENTA Y "
End If
Case "5"
txtDecena = "CINCUENTA"
If Unidad <> "0" Then
txtDecena = "CINCUENTA Y "
End If
Case "6"
txtDecena = "SESENTA"
If Unidad <> "0" Then
txtDecena = "SESENTA Y "
End If
Case "7"
txtDecena = "SETENTA"
If Unidad <> "0" Then
txtDecena = "SETENTA Y "
End If
Case "8"
txtDecena = "OCHENTA"
If Unidad <> "0" Then
txtDecena = "OCHENTA Y "
End If
Case "9"
txtDecena = "NOVENTA"
If Unidad <> "0" Then
txtDecena = "NOVENTA Y "
End If
End Select

If Decena <> "1" Then
Select Case Unidad
Case "1"
If SW Then
txtUnidad = "UN"
Else
txtUnidad = "UNO"
End If
Case "2"
txtUnidad = "DOS"
Case "3"
txtUnidad = "TRES"
Case "4"
txtUnidad = "CUATRO"
Case "5"
txtUnidad = "CINCO"
Case "6"
txtUnidad = "SEIS"
Case "7"
txtUnidad = "SIETE"
Case "8"
txtUnidad = "OCHO"
Case "9"
txtUnidad = "NUEVE"
End Select
End If
ConvierteCifra = Cadena & " " & Trim(CadCientos) & " " & Decimales
End Function


La tome de este mismo tema
por favor, tenme paciencia
ya aprenderé
  #18 (permalink)  
Antiguo 20/09/2007, 02:36
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.088
Antigüedad: 7 años, 8 meses
Puntos: 85
De acuerdo Formato de números en excel

Utiliza la macro que está en: http://savefile.com/files/1051131

Del código:
Código:
    If Cantidad < 0 Then
        EnLetras = "PESOS Menos "
        Cantidad = Abs(Cantidad)
    Else
        EnLetras = "PESOS "
    End If
 
elimina las dos líneas que he resaltado en "rojo".

Y del código:
Código:
Centavos:
        Resto = WorksheetFunction.Round(100 * Resto, 0)
        EnLetras = Trim(EnLetras) + " CON " + Format(Resto, "00") + "/100" 
también elimina lo que está en rojo.

Finalmente (y ya en Excel), la fórmula:
= EnLetras(ENTERO(A2)) & " coma " & EnLetras( 100*(A2-ENTERO(A2)) )

hace lo que estás buscando.

Saludos
  #19 (permalink)  
Antiguo 20/09/2007, 20:56
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 7 años, 3 meses
Puntos: 0
Re: Formato de números en excel

Del código:
Código:
    If Cantidad < 0 Then
        EnLetras = "PESOS Menos "
        Cantidad = Abs(Cantidad)
    Else
        EnLetras = "PESOS "
    End If
 
elimina las dos líneas que he resaltado en "rojo".

Y del código:
Código:
Centavos:
        Resto = WorksheetFunction.Round(100 * Resto, 0)
        EnLetras = Trim(EnLetras) + " CON " + Format(Resto, "00") + "/100" 
también elimina lo que está en rojo.

Finalmente (y ya en Excel), la fórmula:
= EnLetras(ENTERO(A2)) & " coma " & EnLetras( 100*(A2-ENTERO(A2)) )

hace lo que estás buscando.

Saludos [/QUOTE]


Gracias quedo perfecto
muchas gracias nuevamente
no sabre como pagar el favor
jajaja

me has ahorrado mucho trabajo, espero no haberte causado tanto del mismo
atte

ulises flores.
valdivia-chile
  #20 (permalink)  
Antiguo 20/09/2007, 22:54
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.088
Antigüedad: 7 años, 8 meses
Puntos: 85
Re: Formato de números en excel

Amigo:
Mientras la selección de Bielsa no le gane a la de Argentina... no hay problemas (je je je).

Un saludo.
  #21 (permalink)  
Antiguo 21/09/2007, 14:54
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 7 años, 3 meses
Puntos: 0
Re: Formato de números en excel

Cita:
Iniciado por mrocf Ver Mensaje
Amigo:
Mientras la selección de Bielsa no le gane a la de Argentina... no hay problemas (je je je).

Un saludo.


jajajajajaja

AAAAAhhhhh
le tienen susto a Bielsa, jajajja (Broma no mas)

ojala no sea eso el tope para q sigan ayudando, jejejeje

ok saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 20:57.
SEO by vBSEO 3.3.2