Referencia externa en funcion personalizada

23/12/2004 - 17:56 por Juan Sánchez | Informe spam
Hola grupo. Una consulta.
En una función personalizada que la tengo como complemento, tengo un
argumento de tipo Range. Funciona perfecto si le envio una referencia del
mismo libro donde escribo la fórmula, pero si la referencia es externa me
devuelve un error de valor (#VALOR!) , cuando el libro al que hago
referencia está cerrado; algo parecido a lo que sucedía en la función
SUMAR.SI en Office 97 antes del SR-1.

¿Alguna idea de como solucionar esto?

Slds,
Juan.

P.D. Si no alcanzo a ingresar nuevamente al grupo más tarde, para todos una
felices fiestas y nos vemos el lunes.

Preguntas similare

Leer las respuestas

#1 KL
23/12/2004 - 20:28 | Informe spam
Juan,

Creo q lo q describes es normal y no tiene nada q ver con el problema de
SUMAR.SI en Office 97 (ya me corregiran si me equivoco). Las funciones
nativas de Excel (tales como SUMAR.SI) son parte d la aplicacion y se cargan
cada vez q se abre la aplicacion. En cambio una funcion personalizada es un
codigo VBA almacenado dentro de un modulo VBA q como tal es parte de un
proyecto VBA q a su vez es parte integral de un fichero de Excel.

Para poder usar tal codigo es necesario q su vehiculo (el fichero) este
abierto (eso si, no tiene por q ser visible). Las opciones q se me ocurren
para poder usar un macro desde otro fichero son:

1) tener abierto el fichero *.xls q contiene el macro mientras se trabaja
con el libro q lo usa.
2) guardar el macro en el fichero personal.xls. Para ello ve al menu
Herramientas>Macro>Grabar Nuevo Macro. El dialogo "Grabar Macro" aparecera.
En el desplegable "Guardar macro en" elige la opcion "Libro personal de
macros" y pulsa "Aceptar". Ahora para la grabacion y ve al Editor de VBA. En
el explorador de proyectos podras ver el libro Personal.xls, copia tu
funcion a un modulo, digamos el Modulo1.
3) crear un add-in (*.xla) e instalarlo para q se carge cada vez q se abre
Excel.

Saludos,
KL


"Juan Sánchez" <jbsrec(a)hotmail.yasabes> wrote in message
news:
Hola grupo. Una consulta.
En una función personalizada que la tengo como complemento, tengo un
argumento de tipo Range. Funciona perfecto si le envio una referencia del
mismo libro donde escribo la fórmula, pero si la referencia es externa me
devuelve un error de valor (#VALOR!) , cuando el libro al que hago
referencia está cerrado; algo parecido a lo que sucedía en la función
SUMAR.SI en Office 97 antes del SR-1.

¿Alguna idea de como solucionar esto?

Slds,
Juan.

P.D. Si no alcanzo a ingresar nuevamente al grupo más tarde, para todos
una
felices fiestas y nos vemos el lunes.


Respuesta Responder a este mensaje
#2 Juan Sánchez
23/12/2004 - 22:46 | Informe spam
Creo que no me expliqué bien.
La función la tengo como un complemento (add-in .xla)
El problema es que cuando la utilizo, si en la fórmula que utilizo la
función personalizada el argumento es una referencia externa me da el error
de VALOR. Si el argumento de la función son referencias del mismo libro
donde introduzco la fórmula no tengo problema.

Slds,
Juan



"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:
Juan,

Creo q lo q describes es normal y no tiene nada q ver con el problema de
SUMAR.SI en Office 97 (ya me corregiran si me equivoco). Las funciones
nativas de Excel (tales como SUMAR.SI) son parte d la aplicacion y se


cargan
cada vez q se abre la aplicacion. En cambio una funcion personalizada es


un
codigo VBA almacenado dentro de un modulo VBA q como tal es parte de un
proyecto VBA q a su vez es parte integral de un fichero de Excel.

Para poder usar tal codigo es necesario q su vehiculo (el fichero) este
abierto (eso si, no tiene por q ser visible). Las opciones q se me ocurren
para poder usar un macro desde otro fichero son:

1) tener abierto el fichero *.xls q contiene el macro mientras se trabaja
con el libro q lo usa.
2) guardar el macro en el fichero personal.xls. Para ello ve al menu
Herramientas>Macro>Grabar Nuevo Macro. El dialogo "Grabar Macro"


aparecera.
En el desplegable "Guardar macro en" elige la opcion "Libro personal de
macros" y pulsa "Aceptar". Ahora para la grabacion y ve al Editor de VBA.


En
el explorador de proyectos podras ver el libro Personal.xls, copia tu
funcion a un modulo, digamos el Modulo1.
3) crear un add-in (*.xla) e instalarlo para q se carge cada vez q se abre
Excel.

Saludos,
KL


"Juan Sánchez" <jbsrec(a)hotmail.yasabes> wrote in message
news:
> Hola grupo. Una consulta.
> En una función personalizada que la tengo como complemento, tengo un
> argumento de tipo Range. Funciona perfecto si le envio una referencia


del
> mismo libro donde escribo la fórmula, pero si la referencia es externa


me
> devuelve un error de valor (#VALOR!) , cuando el libro al que hago
> referencia está cerrado; algo parecido a lo que sucedía en la función
> SUMAR.SI en Office 97 antes del SR-1.
>
> ¿Alguna idea de como solucionar esto?
>
> Slds,
> Juan.
>
> P.D. Si no alcanzo a ingresar nuevamente al grupo más tarde, para todos
> una
> felices fiestas y nos vemos el lunes.
>
>


Respuesta Responder a este mensaje
#3 KL
23/12/2004 - 23:47 | Informe spam
Juan,

Perdon, he sido yo quien no ha entendido bien tu pregunta. Pues tengo dos
noticias para ti, una mala y otra un pelin mejor. La mala es q VBA no tiene
un metodo para sacar expresamente valores de libros cerrados como lo hacen
las funciones nativas. La "buena" es q creo se puede hacer algo parecido por
medio de la funcion GetValue, pero con bastantes rodeos. A ver si te sirve
esto:
http://j-walk.com/ss/excel/tips/tip82.htm . Tambien creo q debe haber una
forma de hacerlo con alguna llamada ADO.

Saludos,
KL

"Juan Sánchez" <jbsrec(a)hotmail.yasabes> wrote in message
news:
Creo que no me expliqué bien.
La función la tengo como un complemento (add-in .xla)
El problema es que cuando la utilizo, si en la fórmula que utilizo la
función personalizada el argumento es una referencia externa me da el
error
de VALOR. Si el argumento de la función son referencias del mismo libro
donde introduzco la fórmula no tengo problema.

Slds,
Juan



"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:
Juan,

Creo q lo q describes es normal y no tiene nada q ver con el problema de
SUMAR.SI en Office 97 (ya me corregiran si me equivoco). Las funciones
nativas de Excel (tales como SUMAR.SI) son parte d la aplicacion y se


cargan
cada vez q se abre la aplicacion. En cambio una funcion personalizada es


un
codigo VBA almacenado dentro de un modulo VBA q como tal es parte de un
proyecto VBA q a su vez es parte integral de un fichero de Excel.

Para poder usar tal codigo es necesario q su vehiculo (el fichero) este
abierto (eso si, no tiene por q ser visible). Las opciones q se me
ocurren
para poder usar un macro desde otro fichero son:

1) tener abierto el fichero *.xls q contiene el macro mientras se trabaja
con el libro q lo usa.
2) guardar el macro en el fichero personal.xls. Para ello ve al menu
Herramientas>Macro>Grabar Nuevo Macro. El dialogo "Grabar Macro"


aparecera.
En el desplegable "Guardar macro en" elige la opcion "Libro personal de
macros" y pulsa "Aceptar". Ahora para la grabacion y ve al Editor de VBA.


En
el explorador de proyectos podras ver el libro Personal.xls, copia tu
funcion a un modulo, digamos el Modulo1.
3) crear un add-in (*.xla) e instalarlo para q se carge cada vez q se
abre
Excel.

Saludos,
KL


"Juan Sánchez" <jbsrec(a)hotmail.yasabes> wrote in message
news:
> Hola grupo. Una consulta.
> En una función personalizada que la tengo como complemento, tengo un
> argumento de tipo Range. Funciona perfecto si le envio una referencia


del
> mismo libro donde escribo la fórmula, pero si la referencia es externa


me
> devuelve un error de valor (#VALOR!) , cuando el libro al que hago
> referencia está cerrado; algo parecido a lo que sucedía en la función
> SUMAR.SI en Office 97 antes del SR-1.
>
> ¿Alguna idea de como solucionar esto?
>
> Slds,
> Juan.
>
> P.D. Si no alcanzo a ingresar nuevamente al grupo más tarde, para todos
> una
> felices fiestas y nos vemos el lunes.
>
>






Respuesta Responder a este mensaje
#4 KL
23/12/2004 - 23:59 | Informe spam
Juan,

Otra cosa q he encontrado q igual te sirve como punto de partida:
http://groups.google.es/groups?hl=e...sa05#link5

Saludos,
KL


"KL" wrote in message
news:bWHyd.4564595$
Juan,

Perdon, he sido yo quien no ha entendido bien tu pregunta. Pues tengo dos
noticias para ti, una mala y otra un pelin mejor. La mala es q VBA no
tiene un metodo para sacar expresamente valores de libros cerrados como lo
hacen las funciones nativas. La "buena" es q creo se puede hacer algo
parecido por medio de la funcion GetValue, pero con bastantes rodeos. A
ver si te sirve esto:
http://j-walk.com/ss/excel/tips/tip82.htm . Tambien creo q debe haber una
forma de hacerlo con alguna llamada ADO.

Saludos,
KL

"Juan Sánchez" <jbsrec(a)hotmail.yasabes> wrote in message
news:
Creo que no me expliqué bien.
La función la tengo como un complemento (add-in .xla)
El problema es que cuando la utilizo, si en la fórmula que utilizo la
función personalizada el argumento es una referencia externa me da el
error
de VALOR. Si el argumento de la función son referencias del mismo libro
donde introduzco la fórmula no tengo problema.

Slds,
Juan



"KL" <lapink2000(at)hotmail.com> escribió en el mensaje
news:
Juan,

Creo q lo q describes es normal y no tiene nada q ver con el problema de
SUMAR.SI en Office 97 (ya me corregiran si me equivoco). Las funciones
nativas de Excel (tales como SUMAR.SI) son parte d la aplicacion y se


cargan
cada vez q se abre la aplicacion. En cambio una funcion personalizada es


un
codigo VBA almacenado dentro de un modulo VBA q como tal es parte de un
proyecto VBA q a su vez es parte integral de un fichero de Excel.

Para poder usar tal codigo es necesario q su vehiculo (el fichero) este
abierto (eso si, no tiene por q ser visible). Las opciones q se me
ocurren
para poder usar un macro desde otro fichero son:

1) tener abierto el fichero *.xls q contiene el macro mientras se
trabaja
con el libro q lo usa.
2) guardar el macro en el fichero personal.xls. Para ello ve al menu
Herramientas>Macro>Grabar Nuevo Macro. El dialogo "Grabar Macro"


aparecera.
En el desplegable "Guardar macro en" elige la opcion "Libro personal de
macros" y pulsa "Aceptar". Ahora para la grabacion y ve al Editor de
VBA.


En
el explorador de proyectos podras ver el libro Personal.xls, copia tu
funcion a un modulo, digamos el Modulo1.
3) crear un add-in (*.xla) e instalarlo para q se carge cada vez q se
abre
Excel.

Saludos,
KL


"Juan Sánchez" <jbsrec(a)hotmail.yasabes> wrote in message
news:
> Hola grupo. Una consulta.
> En una función personalizada que la tengo como complemento, tengo un
> argumento de tipo Range. Funciona perfecto si le envio una referencia


del
> mismo libro donde escribo la fórmula, pero si la referencia es externa


me
> devuelve un error de valor (#VALOR!) , cuando el libro al que hago
> referencia está cerrado; algo parecido a lo que sucedía en la
> función
> SUMAR.SI en Office 97 antes del SR-1.
>
> ¿Alguna idea de como solucionar esto?
>
> Slds,
> Juan.
>
> P.D. Si no alcanzo a ingresar nuevamente al grupo más tarde, para
> todos
> una
> felices fiestas y nos vemos el lunes.
>
>










Respuesta Responder a este mensaje
#5 Héctor Miguel
24/12/2004 - 10:39 | Informe spam
hola, chicos !

la 'virtud' de las funciones nativas de excel [al usar referencias externas] es que...
crean un vinculo [real/efectivo] hacia dichas referencias/hojas/libros
hasta donde se [y solo por aprovechar este tiempo de 'descanso']...
valdria la pena analizar una especie de 'administracion de nombres'
['cosa' que SI es posible a traves de funciones personalizadas]
claro que tiene sus 'pros y contras', pero...
[como digo, solo 'creo que'] valdria la pena analizar...

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida