Macro auto-open en libro excel.

04/09/2003 - 17:34 por bernalko | Informe spam
Dado el nivel tan alto que hay en este Foro, me he decidido a
exponeros mi situación, a ver qué soluciones me podéis ofrecer.
Dispongo de una macro (pgprint) en un libro nuevo (pgprint.xls) para
imprimir de forma personalizada. En la barra de menús de Excel he
creado un botón(smile) que apunta a esta macro (pgprint), de forma que
se ejecuta cada vez que pulso el botón.
Dado el éxito, he decidido compartir esta macro con mis compañeros,
permitiéndoles ejecutarla de una manera sencilla: simplemente con
abrir el fichero (pgprint.xls).

Así que he creado un procedimiento workbook_open() en el mismo libro,
apuntando a la macro (pgprint); de manera que cada vez que abren el
fichero (pgprint.xls) se ejecuta la macro.
Ahora me encuentro con el problema de que cuando pulso el botón
(smile) se ejecuta la macro ¡2 veces!
-El botón apunta a la macro, y al abrir el fichero se ejecuta
workbook_open() que apunta al mismo sitio-

¿Cómo podría evitar esta situación, manteniendo el acceso mediante
botón y al abrir el fichero?

Gracias por vuestro interés.

-Koldo-

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/09/2003 - 04:16 | Informe spam
¿Que tal, chicos?

... macro (pgprint) en un libro ... (pgprint.xls) para imprimir de forma personalizada.
... boton ... macro ... se ejecuta cada vez que pulso [...]
... compartir ... macro ... ejecutarla ... simplemente ... abrir el fichero ... workbook_open() [...]
... problema ... pulso el botón ... se ejecuta la macro ¡2 veces! [...]

Leonardo V. escribió en el mensaje
... copia tu macro en el archivo personal de Excel [...]





==> La "doble" ejecucion (probablemente) "ocurre" SOLO la 1a vez que se pulsa el boton (si el libro [pgprnt] esta cerrado).
las "siguientes" ocasiones (o estando ya abierto el libro) "debiera" suceder solo una vez ... ¿podrias confirmarlo?
La razon: UNA por la "llamada" a la macro (por el boton) Y UNA MAS por el evento _Open del libro :\
Soluciones?:
-o- QUITAR la "llamada" a la macro en el evento _Open
-o- (como dice Leonardo): Copiar la macro al libro "Personal.xls" y "apuntar" el boton a la "nueva" localizacion
Nota: => "tendrias que" copiarla al libro "Personal.xls" DE CADA USUARIO [o "crearselo" si no existe]
-o- Convertir el libro en un complemento (.XLA) + "Instalarlo" + "apuntar" la macro a su "nueva" localizacion ...
... + QUITAR la "llamada" a la macro en el evento _Open
_______
Saludos,
Héctor.
MS-MVP
Respuesta Responder a este mensaje
#2 Héctor Miguel
06/09/2003 - 00:51 | Informe spam
Hola, Koldo !

... exponer de otro modo:
... macro que se autoejecuta al abrir el libro ... Esta macro CIERRA el libro ... una vez finalizada ...
¿Hay algun modo de ejecutar (llamar a) dicha macro mediante un boton en la barra de menus de Excel?



==> Tratando de exponerlo "de otro modo" [aunque "mi consejo" seria EL MISMO] :(
-o- QUITAR la "llamada" a la macro EN el evento _Open del libro :)

Un boton con una macro asignada "que apunta" a un libro cerrado => [en ese momento] => LO ABRE y "la ejecuta"
..."pero"... SI LA MISMA macro "es llamada" en el evento _Open del libro => se ejecutara DOS VECES
"por lo tanto"... para evitar la "doble ejecucion", => QUITA [la llamada a] la macro del evento _Open <
Si quisieras "conservar" [la llamada a] la macro en el evento _Open (y ya que la macro cierra "su" libro al finalizar)...
tendrias que "triangular", asignando al boton OTRA macro que "solamente abra" el libro que "autoejecuta" la macro.

Espero haber podido "ser mas claro" ahora ;)
_______
Saludos,
Héctor.
MS-MVP
Respuesta Responder a este mensaje
#3 bernalko
06/09/2003 - 08:50 | Informe spam
Muchas gracias a Leonardo y a Héctor.
Con vuestras aclaraciones me habéis ayudado a iluminar el tema.

Si quisieras "conservar" [la llamada a] la macro en el evento _Open (y ya que la macro cierra "su" libro al finalizar)...
tendrias que "triangular", asignando al boton OTRA macro que "solamente abra" el libro que "autoejecuta" la macro.

Espero haber podido "ser mas claro" ahora ;)



Héctor, creo que esta vez me has "adivinado" el pensamiento.

Gracias nuevamente

Saludos, ;))

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