Ayuda sobre excel 2003, funcion f(x)

14/12/2007 - 06:47 por Roger | Informe spam
Alguien me podria ayudar, uso la version de Excel 2003, y estoy creando una
macro sencilla en VBA dentro de una hoja, para graficar funciones
matemáticas, sin embargo al crearla en esta versión se genera un error.

Function f(x)
f = x ^ 2
End Function

En la casilla B3, estoy asignando el valor de 6
En la casilla C3, estoy asignando el valor de la función =f(B3), y entonces
al verificar los datos me da un mensaje de error, error en la formula, he
checado los datos introducidos con detalle y son correctos, ademas he
introducido los mismos datos en Excel 2002, y ahí funciona bien me devuelve
los datos correctos.
Por su ayuda.


gracias.
Roger.

Preguntas similare

Leer las respuestas

#6 Roger
14/12/2007 - 22:19 | Informe spam
áéctor, sorpresa, he seguido con detalle tus recomendaciones con lo citado en
el inciso c), he cambiado el nombre de la función y sus referencias, y ya
funciona ahora me devuelve el calculo correcto.
Eres muy amable.
gracias.
Roger.


"Héctor Miguel" escribió:

hola, Roger !

> ... primero creo la macro donde defino la funcion como inicialmente la describo
> ... despues cierro el modulo de macros/VBA y la defino en la casillas donde requiero que se aplique el calculo
> ... la razon de preguntar es que voy a programar algunas formulas (funciones un poco complejas y muy repetitivas)
> ... ahora tengo instalada esa version de Excel 2003.

considera lo siguiente como una "prueba" de si el nombre de la funcion que estas definiendo es "aceptable" para excel:

a) introduce (como formula) en alguna celda el signo '=' {+} el nombre de la funcion {+} el parentesis de apertura =f(
b) pulsa la combinacion de teclas {ctrl}+{shift}+a
estos pasos debieran dejar en la celda/barra de formulas la "sintaxis" completa de la funcion que estes usando...
con el primer (o unico) de sus argumentos como "seleccionado" (en la celda / barra de formulas)
-> OJO: si excel "te cierra" la funcion SIN dejar seleccionado el argumento... es casi seguro que el nombre de la funcion "no pasa"

c) cambia el nombre de la funcion (y obviamente sus referencias durante el desarrollo en el codigo) p.e. a:

Function Fx(x)
Fx = x ^ 2
End Function

repite el procedimiento anterior y... si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la propuesta anterior __
>> la funcion personalizada que expones en esta consulta:
>> Function f(x)
>> f = x ^ 2
>> End Function
>>
>> 1) si la estas definiendo (realmente) asi de "simple y llana" (exactamente como en tu ejemplo) solo te puedo comentar que:
>> a) existen ciertas "reglas" para definir nombres tanto en excel (rangos, hojas, ...) como en vba (variables, procedimientos, ...)
>> b) en cada version (seguramente) se va incrementando una lista de palabras/caracteres/... "reservados" para uso exclusivo
>> ejemplo: en ninguna version de excel puedes "nombrar" un rango como (solo) "C" (si no recuerdo mal, desde la version 4 inclusive)
>>
>> 2) segun pruebas realizadas luego de esta informacion...
>> -> a partir de la version 2003 la (sola) letra "F" pasa a ser de uso exclusivo (para vba)
>> o sea, no se puede "nombrar" un procedimiento (sub o function) como solo "F"
>>
>> 3) posibilidades de solucion ?... -> procura usar/dar/asignar/... "nombres" (en toda forma aplicable)...
>> NO (excesivamente) laaarrrggggos
>> NO (demasiado) cortos
>> mas bien, "suficientemente" cortos y a la vez "suficientemente" descriptivos/significativos/obvios/...



Respuesta Responder a este mensaje
#7 Roger
14/12/2007 - 22:41 | Informe spam
Héctor, gracias por tu interes, he seguido con detalle tus recomendaciones y
las del inciso c) cambiando el nombre de la funcion me han devuelto el
resultado correcto, ahora ya funcona la macro.

gracias ers muy amable.
Roger.


"Héctor Miguel" escribió:

hola, Roger !

> ... primero creo la macro donde defino la funcion como inicialmente la describo
> ... despues cierro el modulo de macros/VBA y la defino en la casillas donde requiero que se aplique el calculo
> ... la razon de preguntar es que voy a programar algunas formulas (funciones un poco complejas y muy repetitivas)
> ... ahora tengo instalada esa version de Excel 2003.

considera lo siguiente como una "prueba" de si el nombre de la funcion que estas definiendo es "aceptable" para excel:

a) introduce (como formula) en alguna celda el signo '=' {+} el nombre de la funcion {+} el parentesis de apertura =f(
b) pulsa la combinacion de teclas {ctrl}+{shift}+a
estos pasos debieran dejar en la celda/barra de formulas la "sintaxis" completa de la funcion que estes usando...
con el primer (o unico) de sus argumentos como "seleccionado" (en la celda / barra de formulas)
-> OJO: si excel "te cierra" la funcion SIN dejar seleccionado el argumento... es casi seguro que el nombre de la funcion "no pasa"

c) cambia el nombre de la funcion (y obviamente sus referencias durante el desarrollo en el codigo) p.e. a:

Function Fx(x)
Fx = x ^ 2
End Function

repite el procedimiento anterior y... si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la propuesta anterior __
>> la funcion personalizada que expones en esta consulta:
>> Function f(x)
>> f = x ^ 2
>> End Function
>>
>> 1) si la estas definiendo (realmente) asi de "simple y llana" (exactamente como en tu ejemplo) solo te puedo comentar que:
>> a) existen ciertas "reglas" para definir nombres tanto en excel (rangos, hojas, ...) como en vba (variables, procedimientos, ...)
>> b) en cada version (seguramente) se va incrementando una lista de palabras/caracteres/... "reservados" para uso exclusivo
>> ejemplo: en ninguna version de excel puedes "nombrar" un rango como (solo) "C" (si no recuerdo mal, desde la version 4 inclusive)
>>
>> 2) segun pruebas realizadas luego de esta informacion...
>> -> a partir de la version 2003 la (sola) letra "F" pasa a ser de uso exclusivo (para vba)
>> o sea, no se puede "nombrar" un procedimiento (sub o function) como solo "F"
>>
>> 3) posibilidades de solucion ?... -> procura usar/dar/asignar/... "nombres" (en toda forma aplicable)...
>> NO (excesivamente) laaarrrggggos
>> NO (demasiado) cortos
>> mas bien, "suficientemente" cortos y a la vez "suficientemente" descriptivos/significativos/obvios/...



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida