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

#6 Héctor Miguel
15/08/2005 - 08:12 | Informe spam
hola, Diana !

Mostrar la cita
[hasta donde se]... cualquier linea de codigo que 'siga despues de...'
-> Application.Quit o... <Workbook>.Close
ya no 'se ejecuta' :-(
op1: 'mueve' las lineas donde restauras 'lo normal'...
a) al evento 'Workbook_BeforeClose' del libro que contiene el codigo
b) al evento 'Workbook_Deactivate' del libro que contiene el codigo
op2: podrias adaptar un codigo 'de alternancia' [por si el usuario esta cambiando de libros en la sesion] ;)
op3: 'manda' la ejecucion del 'Quit' o el 'Close' -> despues de 'restaurar a lo normal'

si cualquier duda... comentas?
saludos,
hector.
#7 KL
15/08/2005 - 08:13 | Informe spam
Hola Diana,

Mostrar la cita
Solo que conste que pienso que de Excel no se ni la decima parte de lo que
sabe HM :-)

Saludos,
KL
#8 KL
15/08/2005 - 08:16 | Informe spam
Un comentario mas: solo cambie el codigo de HM porque pensaba que iba a
meter mas instrucciones entremedio, cosa que al final no hice. Asi que
puedes usar el codigo original de Hector anteponiendole la instruccion
Application.DisplayFullScreen = False

Saludos,
KL



"KL" wrote in message
news:eudgv$
Mostrar la cita
#9 Diana
15/08/2005 - 08:30 | Informe spam
KL:
ActiveWorkbook.Protect Windows:=True Quizás tengas razón. Como así la
aprendí, nunca probé quitarla para ver si igual funcionaba. Es verdad que al
hacer click con el botón derecho del mouse se despliega un menú contextual,
pero como para anularlo hay que usar funciones API y no las manejo bien,
prefiero no usarlas. en realidad lo que más me preocupa es que el usuario no
pueda usar el botón "x" de salida de exel pues en mi macro de cierre tengo
programadas varias instrucciones. Llamando a DisplayFullScreen=True obligo
al usuario a usar mi botón de salida.


Parte de mi código donde llamo a DisplayFullScreen =False es el que sigue.
Esta rutina es llamada desde ThisWorkbook con una Private Sub Workbook_
Before Close

Sub RestablecerEntorno()
Application.ScreenUpdating = False
With mobjEstadoAplicacion
.RestablecerEstado
End With
With Application.CommandBars("Worksheet Menu Bar")
.Reset
End With
ActiveWorkbook.Unprotect
With Application
.DisplayFullScreen = False
.WindowState = xlMaximized
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
With ActiveWindow
.Caption = ActiveWorkbook.Name
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
.DisplayHeadings = True
End With
End Sub

"KL" escribió en el mensaje
news:eudgv$
Mostrar la cita
#10 Diana
15/08/2005 - 08:36 | Informe spam
Hector::
Acabo de enviar una respuesta a KL donde explico parte de mi código. Sí, uso
un before close opara ejecutar el código.

"Héctor Miguel" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida