ayuda para una macro

15/08/2005 - 07:05 por Diana | Informe spam
Hola a todos!
Tengo terminada una aplicación. Lo único que me falta es una macro que
determine si el usuario de la aplicación tiene otros libros abiertos de
excel.
Si tiene otros libros abiertos, mi aplicación terminaría con
Activeworkbook.Close
En cambio, si el usuario no tiene otros libros abiertos, mi aplicación
terminará con Application.Quit
A alguien se le ocurre cómo escribir esta macro????
Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/08/2005 - 07:14 | Informe spam
hola, Diana !

... macro que determine si el usuario... tiene otros libros abiertos
...Si tiene otros libros abiertos... Activeworkbook.Close
... si el usuario no tiene otros libros abiertos... Application.Quit



If Workbooks.Count > 1 _
Then ActiveWorkbook.Close _
Else Application.Quit

saludos,
hector.
Respuesta Responder a este mensaje
#2 Diana
15/08/2005 - 07:45 | Informe spam
Gracias Hector!
Ya la probé y funcionó perfecto.
Puedo hacerte otra pregunta ya que sabés tanto?
En esta aplicación que acabo de terminar llamo al método
ActiveWorkbook.Protect Windows:=True
Application.DisplayFullScreen = True
para que sólo se pueda usar mi menú personalizado y anule el menú de control
de la ventana del libro de trabajo.
Al cerrar el libro, restauro el menú de control llamando al método
ActiveWorkbook.Unprotect y luego
Application .DisplayFullScreen = False.
Esto funciona muy bien con Application.Quit pues cualquier nuevo libro que
abra, se abre con los valores predeterminados de excel.
Pero si hay otro libro abierto, y con el condicional que me enseñaste,
aplico Activeworkbook.Close , el libro que quedó abierto queda con pantalla
completa, como si no reconociera el código Application.DisplayFullScreen =
True
Espero haber sido clara. Mil gracias por tu ayuda.


"Héctor Miguel" escribió en el mensaje
news:
hola, Diana !

... macro que determine si el usuario... tiene otros libros abiertos
...Si tiene otros libros abiertos... Activeworkbook.Close
... si el usuario no tiene otros libros abiertos... Application.Quit



If Workbooks.Count > 1 _
Then ActiveWorkbook.Close _
Else Application.Quit

saludos,
hector.

Respuesta Responder a este mensaje
#3 KL
15/08/2005 - 07:48 | Informe spam
Hola Diana,

Hector Miguel ya ha dado la solucion a la tarea. Yo solo queria comentar que
creo que este tipo de comportamiento de las aplicaciones lo encuentro muy
'intrusivo'. A mi como usuario me molestaria mucho que alguien pretendiera
decidir por mi cuando cerrar la aplicacion. Piensa que si el usuario quiere
seguir usando Excel (aunque no tenga ningun archivo abierto en este momento)
y tiene una maquina poco potente o su instalacion de Excel lleva muchos
complementos instalados que pueden tardar mucho en cargarse, tal vez no te
lo agradezca demasiado :-( Te recomiendo que te asegures de que haya una
razon contundente para hacer lo que intentas hacer.

Saludos,
KL



"Diana" wrote in message
news:%
Hola a todos!
Tengo terminada una aplicación. Lo único que me falta es una macro que
determine si el usuario de la aplicación tiene otros libros abiertos de
excel.
Si tiene otros libros abiertos, mi aplicación terminaría con
Activeworkbook.Close
En cambio, si el usuario no tiene otros libros abiertos, mi aplicación
terminará con Application.Quit
A alguien se le ocurre cómo escribir esta macro????
Gracias

Respuesta Responder a este mensaje
#4 Diana
15/08/2005 - 08:02 | Informe spam
Gracias KL por tu opinión. parto de la suposición que si un usuario no tenía
ninguna aplicación abierta antes de abrir la mía, al cerrarla querrá volver
al estado original, y no querría cerrar mi aplicación y quedarse con la
ventana de excel abierta y vacía. Acabo de enviar otra pregunta al grupo
dentro de esta misma, que me surgió a partir de la opción
Activeworkbook.Close.
Como vos sabés mucho igual que Héctor, y ya me ayudaste en otra
oportunidades, te pido si la podés leer y ayudarme.
Muchísimas gracias Héctor y KL poe la ayuda que nos brindan siempre.

"KL" escribió en el mensaje
news:
Hola Diana,

Hector Miguel ya ha dado la solucion a la tarea. Yo solo queria comentar
que creo que este tipo de comportamiento de las aplicaciones lo encuentro
muy 'intrusivo'. A mi como usuario me molestaria mucho que alguien
pretendiera decidir por mi cuando cerrar la aplicacion. Piensa que si el
usuario quiere seguir usando Excel (aunque no tenga ningun archivo abierto
en este momento) y tiene una maquina poco potente o su instalacion de
Excel lleva muchos complementos instalados que pueden tardar mucho en
cargarse, tal vez no te lo agradezca demasiado :-( Te recomiendo que te
asegures de que haya una razon contundente para hacer lo que intentas
hacer.

Saludos,
KL



"Diana" wrote in message
news:%
Hola a todos!
Tengo terminada una aplicación. Lo único que me falta es una macro que
determine si el usuario de la aplicación tiene otros libros abiertos de
excel.
Si tiene otros libros abiertos, mi aplicación terminaría con
Activeworkbook.Close
En cambio, si el usuario no tiene otros libros abiertos, mi aplicación
terminará con Application.Quit
A alguien se le ocurre cómo escribir esta macro????
Gracias





Respuesta Responder a este mensaje
#5 KL
15/08/2005 - 08:09 | Informe spam
Hola Diana,

En tanto vuelve Hector

En esta aplicación que acabo de terminar llamo al método
ActiveWorkbook.Protect Windows:=True
Application.DisplayFullScreen = True



Hasta donde se, la primera instruccion no deberia hacer ningun efecto sobre
la posibilidad de quitar la vista en pantalla completa.

para que sólo se pueda usar mi menú personalizado y anule el menú de
control de la ventana del libro de trabajo.



Espero que sepas que al hacer clic derecho sobre tu menu personalizado o
alrededor aparece un menu contextual que permita mostrar todos los menus.

Pero si hay otro libro abierto, y con el condicional que me enseñaste,
aplico Activeworkbook.Close , el libro que quedó abierto queda con
pantalla completa, como si no reconociera el código
Application.DisplayFullScreen = True



Aqui debe estar fallando algo en el codigo. Podrias exponer el codigo
completo que lo hace? Mientras tanto prueba esto:

Application.DisplayFullScreen = False
If Workbooks.Count > 1 Then
ActiveWorkbook.Close
Else
Application.Quit
End If

Saludos,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida