Macro para cerrar el archivo activo
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Macro para cerrar el archivo activo
hola a todos, necesito el código para que una macro cierre el archivo activo (calc)
desde ya muchas Gracias
Oscar
desde ya muchas Gracias
Oscar
OpenOffice 3.3 - S.O. Windows 7
OpenOffice 3.2 - Ubuntu 9.10
OpenOffice 3.2 - Ubuntu 9.10
-
- Mensajes: 261
- Registrado: Lun Dic 01, 2008 7:59 am
- Ubicación: Pereira, Colombia
Re: Macro para cerrar el archivo activo
Saludos: En el Foro en inglés, http://www.oooforum.org/forum/viewtopic ... +doc+macro encontré que para cerrar un documento de OOo (Calc, writer, Draw, Impress y Base ) desde una macro se utiliza oDoc.Close(True)
Por lo que yo la ensayé con una lista de Calc y funcionó:
Sub Cierra
Doc = ThisComponent
Doc.Close(True)
End sub
Nota: Esta sub funciona en Mis macros, no se si trabaja como una macro adjunta al documento. Espero haberlo servido de ayuda,
Por lo que yo la ensayé con una lista de Calc y funcionó:
Sub Cierra
Doc = ThisComponent
Doc.Close(True)
End sub
Nota: Esta sub funciona en Mis macros, no se si trabaja como una macro adjunta al documento. Espero haberlo servido de ayuda,
Néstor
S,O. Ubuntu 15 AOO_4.0.1
S,O. Ubuntu 15 AOO_4.0.1
Re: Macro para cerrar el archivo activo
Gracias, funcionó pero genera un error y cierra todos los documentos activos y en caso de ser el unico activo, cierra tambien OOo
Néstor Londoño B. escribió:Saludos: En el Foro en inglés, http://www.oooforum.org/forum/viewtopic ... +doc+macro encontré que para cerrar un documento de OOo (Calc, writer, Draw, Impress y Base ) desde una macro se utiliza oDoc.Close(True)
Por lo que yo la ensayé con una lista de Calc y funcionó:
Sub Cierra
Doc = ThisComponent
Doc.Close(True)
End sub
Nota: Esta sub funciona en Mis macros, no se si trabaja como una macro adjunta al documento. Espero haberlo servido de ayuda,
OpenOffice 3.3 - S.O. Windows 7
OpenOffice 3.2 - Ubuntu 9.10
OpenOffice 3.2 - Ubuntu 9.10
Re: Macro para cerrar el archivo activo
Hola...
Intenta con
Toma en cuenta que no se guardará ningún cambio.
Saludos
Intenta con
Código: Seleccionar todo
ThisComponent.dispose
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Macro para cerrar el archivo activo
Que tal:
Referente a ThisComponent.dispose
Hay alguna instruccion para cerrar el documento cumpliendo cierto periodo de tiempo?
Es decir...El archivo se abre, pasan 20 segundos y el documento se cierre??
Gracias.
Referente a ThisComponent.dispose
Hay alguna instruccion para cerrar el documento cumpliendo cierto periodo de tiempo?
Es decir...El archivo se abre, pasan 20 segundos y el documento se cierre??
Gracias.
OpenOffice 3.1 en Windows Vista / NeoOffice 2.2.3 con MacOS 10.4 / OpenOffice 2.4 en Ubuntu 9.04
Re: Macro para cerrar el archivo activo
Hola
La instrucción es Wait 20000 (un segundo por cada mil)
Saludos
La instrucción es Wait 20000 (un segundo por cada mil)
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
-
- Mensajes: 2
- Registrado: Mié Dic 28, 2011 1:06 pm
Re: Macro para cerrar el archivo activo
Hola,
con vuestro pemiso entro en este hilo, pues parece escrito por mi.
Creo que tengo este mismo problema y no doy con una solución correcta.
Hacer que el archivo activo se cierre pasado un tiempo lo soluciono con un contador y un Do ...
(Puede ser que falle algo pues lo he redactado con editor y no está probado, pero la idea es esa)
Mi código es un poco más complicado pues tiene un botón para imprimir que además de imprimir pone el contador a 0.
La macro AutoCierre está enlazada al evento de Abrir Fichero del propio documento (Herramientas ->Personalizar)
El funcionamiento es correcto si el usuario no cierra la aplicación, sino, la macro sigue corriendo (Do ... Loop) y luego quiere cerrar el fichero, esto lanza un error. Este es mi problema.
He probado a buscar el fichero temporal (StrFileLocked = StrPath & ".~lock." & StrFile & "#") que crea OO cuando está abierto, pero este no deja de existir mientras está la macro corriendo.
He probado a crear una variable Booleana y vincularla a el evento de Cerrar Archivo y Aplicación para que en el caso de estar cerrado no intente guardarlo
He Intentado capturar el error con On Goto Error y aunque ya no sale el mensaje, sigue saltando la aplicación de OO de Recuparación y envío de Errorres.
Agradecería vuestros consejos.
Un saludo
con vuestro pemiso entro en este hilo, pues parece escrito por mi.
Creo que tengo este mismo problema y no doy con una solución correcta.
Hacer que el archivo activo se cierre pasado un tiempo lo soluciono con un contador y un Do ...
Código: Seleccionar todo
Global TiempoTranscurrido as long
Global Comienzo as long
Sub AutoCierre
Dim oDocumento As Object
Dim oHojaActiva As Object
Dim oCeldaComienzo As Object
Dim oCeldaTiempoRestante As Object
Dim oCeldaTiempoCierre As Object
TiempoCierre = 50 'Valor por defecto
Comienzo = Timer 'Inicio de la aplicación
oDocumento = ThisComponent
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
oCeldaComienzo = oHojaActiva.getCellRangeByName( "L1" )
oCeldaTiempoRestante = oHojaActiva.getCellRangeByName( "M1" )
oCeldaTiempoCierre = oHojaActiva.getCellRangeByName( "N1" )
'Para más comodidad, los tiempos se muestran y se toman de la hoja Calc
TiempoCierre = oCeldaTiempoCierre.getValue()
oCeldaComienzo.setValue( Comienzo)
Do
'toma últimos tiempos y calcula el tiempo que ha estado contando
Ahora = Timer
TiempoTranscurrido = Ahora - oCeldaComienzo.getValue()
oCeldaTiempoRestante.setValue( TiempoCierre - TiempoTranscurrido )
Loop While (TiempoTranscurrido < TiempoCierre)
'mensaje de información
'a$ = "La aplicación se va cerrar" & Chr(13) & TiempoTranscurrido & " Seconds" & Chr(13)
'MsgBox (a$,,"Demasiado tiempo transcurrido")
'Guardamos los cambios
oDocumento.store()
'Cerramos el archivo
oDocumento.close(True)
End Sub
Mi código es un poco más complicado pues tiene un botón para imprimir que además de imprimir pone el contador a 0.
La macro AutoCierre está enlazada al evento de Abrir Fichero del propio documento (Herramientas ->Personalizar)
El funcionamiento es correcto si el usuario no cierra la aplicación, sino, la macro sigue corriendo (Do ... Loop) y luego quiere cerrar el fichero, esto lanza un error. Este es mi problema.
He probado a buscar el fichero temporal (StrFileLocked = StrPath & ".~lock." & StrFile & "#") que crea OO cuando está abierto, pero este no deja de existir mientras está la macro corriendo.
He probado a crear una variable Booleana y vincularla a el evento de Cerrar Archivo y Aplicación para que en el caso de estar cerrado no intente guardarlo
He Intentado capturar el error con On Goto Error y aunque ya no sale el mensaje, sigue saltando la aplicación de OO de Recuparación y envío de Errorres.
Agradecería vuestros consejos.
Un saludo
OpenOffice 3.1 con Windows XP
-
- Mensajes: 2
- Registrado: Mié Dic 28, 2011 1:06 pm
Re: Macro para cerrar el archivo activo
Buenas,
debo entender que mi problema no tiene solución o que no la conocéis.
Si algún día doy con ella espero acordarme de colocarla aquí.
Un saludo
debo entender que mi problema no tiene solución o que no la conocéis.
Si algún día doy con ella espero acordarme de colocarla aquí.
Un saludo
OpenOffice 3.1 con Windows XP
Re: Macro para cerrar el archivo activo
No se si te servirá de ayuda.
Ahora estoy usando más bien el LibreOffice, por lo que no se si te funcionara en Ooo.
Las sentencias para cerrar el documento sin provocarme el error han sido:
Si te das cuenta, lo único que he cambiado ha sido la asignación al
Ahora estoy usando más bien el LibreOffice, por lo que no se si te funcionara en Ooo.
Las sentencias para cerrar el documento sin provocarme el error han sido:
Código: Seleccionar todo
document = ThisComponent.CurrentController.Frame
document.close(true)
Al menos a mi me funciona...document
OpenOffice 3 en Windows 7