Ámbito de una función

21/08/2004 - 08:24 por MarianoH | Informe spam
Hola a todos:

Tengo una función hecha por mi. Si la pongo en un módulo de código de un
libro, funciona OK (en el ámbito de ese libro). Pero si la pongo en un
módulo del libro Personal.xls no la reconoce excepto que yo haga referencia
al libro Personal.
O sea, en vez de escribir =Numalet(A1) tengo que poner
=PERSONAL.XLS!Numalet(A1) (Si, es una poco original función para convertir
números a letras)
¿Como puedo hacer para que este disponible en todos los libros?.

Saludos.

Mariano A. Hernández


Mariano A. Hernández

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/08/2004 - 10:14 | Informe spam
hola, Mariano !

... una funcion ... en un modulo de codigo de un libro, funciona OK (en el ambito de ese libro).
... si la pongo en un modulo del libro Personal.xls no la reconoce excepto que yo haga referencia al libro ...
... en vez de escribir =Numalet(A1) tengo que poner =PERSONAL.XLS!Numalet(A1)
¿... que este disponible en todos los libros?.



[probabilidades]... el moduo donde esta la funcion...
- es algun modulo 'de clase' como 'ThisWorkbook' o es el de [alg]una hoja [?]
- tiene la instruccion 'Option Private Module' en el area de las declaraciones [?]

¿comentas si existe alguna 'situacion diferente' de cuando la usas en un libro 'normal'?
saludos,
hector.
Respuesta Responder a este mensaje
#2 David Canales
21/08/2004 - 23:07 | Informe spam
Para lograr lo que quieres tienes que tener tus funciones en un libro que salvas
como Add-In o Complemento. Estos es salvarlo como .xla. En Salvar Como... escoge
esta extension Posteriormente en Herramientas, Complementos, Examinar buscas el
archivo xla donde lo hayas salvado y lo agregas. De esta manera tus funciones
estaran disponibles sin necesidad de ponerle el nombre del archivo.
Saludos,

David Canales


"Héctor Miguel" wrote in message
news:OF$
hola, Mariano !

> ... una funcion ... en un modulo de codigo de un libro, funciona OK (en el


ambito de ese libro).
> ... si la pongo en un modulo del libro Personal.xls no la reconoce excepto


que yo haga referencia al libro ...
> ... en vez de escribir =Numalet(A1) tengo que poner


=PERSONAL.XLS!Numalet(A1)
> ¿... que este disponible en todos los libros?.

[probabilidades]... el moduo donde esta la funcion...
- es algun modulo 'de clase' como 'ThisWorkbook' o es el de [alg]una hoja [?]
- tiene la instruccion 'Option Private Module' en el area de las declaraciones


[?]

¿comentas si existe alguna 'situacion diferente' de cuando la usas en un libro


'normal'?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
22/08/2004 - 06:44 | Informe spam
hola, David !

Para lograr lo que quieres tienes que tener tus funciones en un ... Add-In o Complemento [...]



probablemente 'desconozcas' [o quizas 'olvidaste'... o 'simplemente' no te guste ???]
el uso del 'libro de macros personales': ->'Personal.xls'<- [?]

1.- su 'objetivo' es que todos 'sus' procedimientos esten disponibles para todos los libros [durante la sesion]
[a menos que los declares como 'Private' o en el modulo que los contiene pongas la declaracion 'Option Private Module']
2.- requisito INDISPENSABLE es que LA VENTANA del archivo este oculta
=> NO 'confundir' con el atributo oculto de un archivo en el sistema operativo <3.- [posiblemente] 'perderas' la presentacion de un libro en blanco al 'arrancar' [solamente] excel :((

para que un procedimiento [sub o funcion] este 'disponible' para cualquier libro [sin tener que copiarla a cada libro]
es necesario que el codigo este en el libro de macros 'Personal.xls' [o en algun 'Add-In' como mencionas]
en cualquier 'caso' [personal o add-in]... 'tendras que cargar' con el archivo a otra/s pc/s que 'usen' la/s macro/s

si no has 'generado' ->tu<- libro de macros 'personales'... lo puedes crear [p.e. la forma mas 'simple' es:]
'generando' una [nueva?] macro ... => herramientas -> macro -> grabar nueva macro... <y en en las opciones de la macro => Guardar macro en: Libro de macros personal <la aplicacion [excel] 'se encargara' de grabarlo en el directorio de inicio.
editas [o borras... o sustituyes] la macro grabada y 'pones' ahi el codigo del procedimiento [sub o funcion]
[o 'vas' agregando los que consideres 'de uso comun o frecuente]
[creo que...] es mas 'sencillo' que 'manejar' los complementos [o 'Add-In's'] ;)

si cualquier duda... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 David Canales
23/08/2004 - 15:24 | Informe spam
Hola Hector:

Mi libro de macros personal esta vivito y coleando, contando hasta el momento
con 82 macros, 4 funciones y 64 instruciones OnKey que me son super utiles en mi
trabajo y de otras personas en mi oficina.

Talvez estoy equivocado, explicaba que la unica manera que conozco, no se si hay
otra, de establecer una funcion disponible para todos los libros abiertos y
(aqui viene lo que creo que Mariano preguntaba) no necesites poner el nombre del
archivo antes del nombre de la funcion para referirte a la misma, es convertir
el archivo de excel donde estan la funciones en un archivo xla.

Ahora, como mencionaba en una respuesta a un mensaje anterior que habia hecho
una pregunta similar, puedes tener funciones en cualquier libro y hacer
referencia a estas funciones poniendo el nombre del archivo que las contiene
antes del nombre de la funcion, que es lo que Mariano supongo quiere evitar, ya
que como el explica, tiene sus funciones en el libro Personal.xls.

Saludos,

David Canales


"Héctor Miguel" wrote in message
news:OK2$
hola, David !

> Para lograr lo que quieres tienes que tener tus funciones en un ... Add-In o


Complemento [...]

probablemente 'desconozcas' [o quizas 'olvidaste'... o 'simplemente' no te


guste ???]
el uso del 'libro de macros personales': ->'Personal.xls'<- [?]

1.- su 'objetivo' es que todos 'sus' procedimientos esten disponibles para


todos los libros [durante la sesion]
[a menos que los declares como 'Private' o en el modulo que los contiene


pongas la declaracion 'Option Private Module']
2.- requisito INDISPENSABLE es que LA VENTANA del archivo este oculta
=> NO 'confundir' con el atributo oculto de un archivo en el sistema


operativo <> 3.- [posiblemente] 'perderas' la presentacion de un libro en blanco al
'arrancar' [solamente] excel :((

para que un procedimiento [sub o funcion] este 'disponible' para cualquier


libro [sin tener que copiarla a cada libro]
es necesario que el codigo este en el libro de macros 'Personal.xls' [o en


algun 'Add-In' como mencionas]
en cualquier 'caso' [personal o add-in]... 'tendras que cargar' con el archivo


a otra/s pc/s que 'usen' la/s macro/s

si no has 'generado' ->tu<- libro de macros 'personales'... lo puedes crear


[p.e. la forma mas 'simple' es:]
'generando' una [nueva?] macro ... => herramientas -> macro -> grabar nueva


macro... <> y en en las opciones de la macro => Guardar macro en: Libro de macros personal
<> la aplicacion [excel] 'se encargara' de grabarlo en el directorio de inicio.
editas [o borras... o sustituyes] la macro grabada y 'pones' ahi el codigo del


procedimiento [sub o funcion]
[o 'vas' agregando los que consideres 'de uso comun o frecuente]
[creo que...] es mas 'sencillo' que 'manejar' los complementos [o 'Add-In's']


;)

si cualquier duda... ¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#5 Héctor Miguel
23/08/2004 - 23:52 | Informe spam
hola, David !

... la unica manera ... de ... una funcion disponible (... creo que Mariano preguntaba)
no necesites poner el nombre del archivo ... es convertir ... las funciones en un archivo xla [...]



=> tienes razon [yo] me 'confundi' con la 'expresion' de Mariano... ->'tengo que poner'<- :))
[aunque hace tiempo que no uso ya un libro de macros 'personales']...
siempre que usaba 'sus' funciones NO 'tenia que poner' [...el nombre del archivo 'persona.xls']
[simplemente] 'dejaba que excel lo pusiera' con [menu] insertar / fucion o... {mayusc}+{F3}
seleccionando de la lista de funciones, la que 'necesitaba' aplicar ;)
[ya fuera en la categorias de las 'definidas por el usuario' o... en la que -yo- la hubiera 'puesto'] ;)

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