PDA

Ver la versión completa : tranformar numeros a letras en exel



jocma
08/01/2010, 09:57
por favor alguien que me ayude y pueda compartir como tranformar numeros a letras en exel

MrCarlos
09/01/2010, 00:49
Hola jocma

En el dibujo adjunto puedes encontrar lo requerido

saludos
a sus ordenes

kmell
09/01/2010, 18:40
Saludos
entiendo que lo que quieres
si pones en a1=1250
en b1 salga=mil docientos cincuenta
se es esto excel no tiene esta funcion
pero la puedes crear con visual basic
lo mismo que puedes hacer una macro
los duros que ayuden
seguire averiguando si hay algo lo compartire

Chao..

jocma
12/01/2010, 15:17
Hola jocma

En el dibujo adjunto puedes encontrar lo requerido

saludos
a sus ordenes

Mrcarlos gracias por tu respuesta, hice lo requerido mas no me da el resuldato esperado. que crees que me haga falta uso exel 2003.

kmell
12/01/2010, 18:07
mira esto
http://foros.monografias.com/attachment.php?attachmentid=1764&stc=1&d=1263330214

http://foros.monografias.com/attachment.php?attachmentid=1765&stc=1&d=1263330214

esoero te sirva

grasias

jocma
13/01/2010, 12:16
mira esto
http://foros.monografias.com/attachment.php?attachmentid=1764&stc=1&d=1263330214

http://foros.monografias.com/attachment.php?attachmentid=1765&stc=1&d=1263330214

esoero te sirva

grasias

vi lo que me enviaste pero no he podido usarlo para otras aplicaciones que estoy tratando de crear. o simplemente usarla en una hoja nueva de exel, como podria lograr esto. gracias por tu aporte

Tarzán
13/01/2010, 14:45
guao. bueno el aporte. pero si uno nece sita hacer lo mismo en otro libro. como hace'?

kmell
17/01/2010, 14:39
Saludos
miren esto es lo que les puedo mandar como ejemplo
espero les sirva traten de probar con varias funciones o macros
el procedimiento que yo uso es el mismo para todos los casos
alguno se te acomoda al tuyo
si alquien tiene otro mejor por favor explicarlo

adios

jocma
18/01/2010, 11:14
Saludos
miren esto es lo que les puedo mandar como ejemplo
espero les sirva traten de probar con varias funciones o macros
el procedimiento que yo uso es el mismo para todos los casos
alguno se te acomoda al tuyo
si alquien tiene otro mejor por favor explicarlo

adios
tengo otra inclietud me gustaria saber como puedo colocar en una celda de la hoja de calculo de exel la facha actual del computador

Shetland
18/01/2010, 11:21
tengo otra inclietud me gustaria saber como puedo colocar en una celda de la hoja de calculo de exel la facha actual del computador

Lo puedes hacer con la combinación... Ctrl + Shift + ;

kmell
18/01/2010, 14:21
Tambien puedes poner la fecha de la compu
escribiendo la siguiente funcion
=NOW()
en la celda donde quieres que aparesca
la celda debe tener formato de fecha preferiblemente.
saludos

jocma
19/01/2010, 15:47
Lo puedes hacer con la combinación... Ctrl + Shift + ;
exelente muchas gracias a todos por los aportes

Arielo
05/02/2010, 11:26
Mi aporte al problema inicial:

- En la planilla donde se usará, ir al menú "Herramientas --> Macro --> Editor de Visual Basic"
- Una vez en el editor, insertar un nuevo Módulo
- En el módulo recién agregado, ingresar el siguiente código:



Function EnLetras(Numero)
Dim Texto, Millones, Miles, Cientos, Decimales, Cadena
Dim CadMillones, CadMiles, CadCientos, caddecimales

Texto = Round(Numero, 2)
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 = ConvCifra(Millones, False)
CadMiles = ConvCifra(Miles, False)
CadCientos = ConvCifra(Cientos, True)
caddecimales = ConvierteDecimal(Decimales)

If Trim(CadMillones) > "" Then
If Trim(CadMillones) = "un" Then
Cadena = CadMillones & " millón"
Else
Cadena = CadMillones & " millones"
End If
End If

If Trim(CadMiles) > "" Then
If Trim(CadMiles) = "un" Then
CadMiles = ""
Cadena = Cadena & "" & CadMiles & "un mil"
CadMiles = "un"
Else
Cadena = Cadena & " " & CadMiles & " mil"
End If
End If

If Trim(CadMiles) > "001" Then
CadMiles = "mil"
End If

If Decimales = "00" Then
If Trim(CadMillones & CadMiles & CadCientos & caddecimales) = "un" Then
Cadena = Cadena & "uno "
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos)
Else
Cadena = Cadena & " " & Trim(CadCientos)
End If
Cadena = Cadena & " Pesos, con 00/100.-"
EnLetras = Trim(Cadena)
End If
Else
If Trim(CadMillones & CadMiles & CadCientos & caddecimales) = "un" Then
Cadena = Cadena & "uno " & ", con " & Trim(caddecimales)
Else
If Millones & Miles & Cientos & Decimales = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " Pesos, con " & Trim(Decimales) & "/100.-"
Else
Cadena = Cadena & " " & Trim(CadCientos) & " Pesos, con " & Trim(Decimales) & "/100.-"
End If
EnLetras = Trim(Cadena)
End If
End If

EnLetras = UCase$(Left(EnLetras, 1)) + Right(EnLetras, Len(EnLetras) - 1) '--------> Usar esta línea para primer EnLetras mayuscula
'EnLetras = UCase(EnLetras) '--------> Usar esta línea para mayusculas completa


End Function

Function ConvCifra(Texto, IsCientos As Boolean)
Dim Centena, Decena, Unidad, txtCentena, txtDecena, 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 = "dieciséis"
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 IsCientos = False 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

ConvCifra = txtCentena & " " & txtDecena & txtUnidad
End Function


Function ConvierteDecimal(Texto)
Dim Decenadecimal, Unidaddecimal, txtDecenadecimal, txtUnidaddecimal

Decenadecimal = Mid(Texto, 1, 1)
Unidaddecimal = Mid(Texto, 2, 1)

Select Case Decenadecimal
Case "1"
txtDecenadecimal = "diez"
Select Case Unidaddecimal
Case "1"
txtDecenadecimal = "once"
Case "2"
txtDecenadecimal = "doce"
Case "3"
txtDecenadecimal = "trece"
Case "4"
txtDecenadecimal = "catorce"
Case "5"
txtDecenadecimal = "quince"
Case "6"
txtDecenadecimal = "dieciséis"
Case "7"
txtDecenadecimal = "diecisieta"
Case "8"
txtDecenadecimal = "dieciocho"
Case "9"
txtDecenadecimal = "diecinueve"
End Select
Case "2"
txtDecenadecimal = "veinte"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "veinti"
End If
Case "3"
txtDecenadecimal = "treinta"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "treinta y "
End If
Case "4"
txtDecenadecimal = "cuarenta"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "cuarenta y "
End If
Case "5"
txtDecenadecimal = "cincuenta"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "cincuenta y "
End If
Case "6"
txtDecenadecimal = "sesenta"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "sesenta y "
End If
Case "7"
txtDecenadecimal = "setenta"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "setenta y "
End If
Case "8"
txtDecenadecimal = "ochenta"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "ochenta y "
End If
Case "9"
txtDecenadecimal = "noventa"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "noventa y "
End If
End Select

If Decenadecimal <> "1" Then
Select Case Unidaddecimal
Case "1"
txtUnidaddecimal = "uno"
Case "2"
txtUnidaddecimal = "dos"
Case "3"
txtUnidaddecimal = "tres"
Case "4"
txtUnidaddecimal = "cuatro"
Case "5"
txtUnidaddecimal = "cinco"
Case "6"
txtUnidaddecimal = "seis"
Case "7"
txtUnidaddecimal = "siete"
Case "8"
txtUnidaddecimal = "ocho"
Case "9"
txtUnidaddecimal = "nueve"
End Select
End If

If Decenadecimal = 0 And Unidaddecimal = 0 Then
ConvierteDecimal = ""
Else
ConvierteDecimal = txtDecenadecimal & txtUnidaddecimal
End If
End Function
- y listo...

Ahora, para convertir números a letras, usar de la siguiente manera:
- En una celda (Ej.: G3), colocar el número.
- En otra celda, colocar (sin las comillas): "=EnLetras(G3)", igual que si se ingresara una fórmula de Excel.

Ojo: Para que funcione, es importante que el nivel de seguridad de la planilla sea "Bajo", ya que de lo contrario, no ejecutará la nueva función.

Espero te sirva.



.