funcion

08/12/2003 - 16:08 por jesus | Informe spam
Existe alguna función que me devuela el valor en texto en
una celda diferente, por ejemplo

Columna -A-- --B
1 8 ocho
2 6 seis
3 10 diez


esto quiere decir que cuando yo ponga un caracter
numerico en celda A1 me devuelva automaticamente el mismo
valor pero en texto en B1.
si pongo 8 en A1 que me ponga ocho en B1 automaticamente,
y cuando cambie el valor de A1, automaticamente cambie en
B1 sin que yo haga algun cambio.

se puede?
gracias

Preguntas similare

Leer las respuestas

#1 Anonimo
08/12/2003 - 18:12 | Informe spam
esto lo he robado de este mismo foro espero que te
sirva.

Function EnLetras(Valor) As String ' Función Principal '
If Not IsNumeric(Valor) Then
EnLetras = "¡ La referencia no es valor o... 'excede'
la precisión !!!": 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) = "illón " Or Right
(Letras(Abs(Valor)), 8) = "illones " Then Moneda = "de" &
Moneda
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)),
2) * 100
If Cents = 1 Then Fracs = " centavo" Else Fracs = "
centavos"
If Cents = 0 Then Fracs = "" Else Fracs = " con " &
Letras(Cents) & Fracs
EnLetras = "(" & Letras(Abs(Valor)) & Moneda & Fracs
& ")"
If Valor < 0 Then EnLetras = "menos " & EnLetras
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 = "mil"
Case Is < 2000: Letras = "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 millón "
Case Is < 2000000: Letras = "un millón " & 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 billón "
Case Is < 2000000000000#
Letras = "un billón " & 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
Respuesta Responder a este mensaje
#2 jesus
08/12/2003 - 19:29 | Informe spam
disculpa pero soy un usuario no muy avanzado, com ohago
esto, sé que es codigo pero como lo ejecuto para que me
devuelva el valor texto en una celda.



esto lo he robado de este mismo foro espero que te
sirva.

Function EnLetras(Valor) As String ' Función Principal '
If Not IsNumeric(Valor) Then
EnLetras = "¡ La referencia no es valor


o... 'excede'
la precisión !!!": 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) = "illón " Or Right
(Letras(Abs(Valor)), 8) = "illones " Then Moneda = "de"


&
Moneda
Cents = Application.Round(Abs(Valor) - Int(Abs


(Valor)),
2) * 100
If Cents = 1 Then Fracs = " centavo" Else Fracs = "
centavos"
If Cents = 0 Then Fracs = "" Else Fracs = " con " &
Letras(Cents) & Fracs
EnLetras = "(" & Letras(Abs(Valor)) & Moneda & Fracs
& ")"
If Valor < 0 Then EnLetras = "menos " & EnLetras
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 = "mil"
Case Is < 2000: Letras = "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 millón "
Case Is < 2000000: Letras = "un millón " & 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 billón "
Case Is < 2000000000000#
Letras = "un billón " & 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

.

Respuesta Responder a este mensaje
#3 OECII
09/12/2003 - 14:34 | Informe spam
jesus wrote:

disculpa pero soy un usuario no muy avanzado, com ohago
esto, sé que es codigo pero como lo ejecuto para que me
devuelva el valor texto en una celda.




- Abre el editor de Visual Basic de Excel, a través del menú
Herramientas -> Macro -> Editor de Visual Basic

-Una vez en el editor de visual basic ha click en la Ventana lateral llamada
VBAProject, seleccciona a través del menú contextual Insertar->Módulo

-en el módulo agrega el código de la función que te dieron en el posting anterior

-Selecciona el comando Depuración->Compilar VBAProject. Si no da ningún error,
la función está bien puesta, salva tu trabajo

-Luego, de vuelta a la hoja de cálculo, puedes usar la función de igual manera
que usas las funciones incorporadas de excel, o sea, pondrías en la celda la
fórmula =EnLetras(C1)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida