EN EXCEL COMO CAMBIAR UN NUMERO A TEXTO

24/03/2010 - 20:05 por isma | Informe spam
abra alguna fncion que me pueda cambiar una cantidad a texto, es decir si en
una celda coloco $400 quiero que en la siguiente celda me escriba la cantidad
en letra.

gracias por su ayuda.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
24/03/2010 - 20:09 | Informe spam
hola, isma !

abra alguna fncion que me pueda cambiar una cantidad a texto
es decir si en una celda coloco $400 quiero que en la siguiente celda me escriba la cantidad en letra.



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.
Respuesta Responder a este mensaje
#2 JANTHER
24/03/2010 - 20:17 | Informe spam
Me encanta esta macro, ojala te sirva

Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte,
lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte,
lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As
Variant 'Si esta como Option Explicit
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE",
"OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE",
"DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN",
"VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS",
"VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA",
"SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS",
"QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For I = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case I
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y",
Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito
= 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next I
Select Case lnNumeroBloques
Case 1
PesosMN = lcBloque
Case 2
PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN
Case 3
PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And
lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
PesosMN = "(" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") &
Format(Str(lyCentavos), "00") & "/100 M.N.)"
End Function



J. Antonio Hernández B.


"isma" escribió:

abra alguna fncion que me pueda cambiar una cantidad a texto, es decir si en
una celda coloco $400 quiero que en la siguiente celda me escriba la cantidad
en letra.

gracias por su ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida