Evitar que macro "resaltar fila activa", modifique documento

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Evitar que macro "resaltar fila activa", modifique documento

Mensaje por rojes »

Buenas,

Hace algún tiempo traje aquí el tema de resaltar la fila y columna activa en libreoffice calc y buscando una solución, conseguí varias opciones, por lo cual estoy muy agradecido, pues me ha servido de mucho y me ha ayudado a comprender algunas cosas sobre macros, el tema mencionado es este:
https://forum.openoffice.org/es/forum/v ... =21&t=9119

La pregunta es la siguiente: cuando se abre un documento con la macro, aunque no se realice ninguna operación, por ejemplo la modificación de una celda, solo con moverse de una celda a otra, se activa la opción de guardar el documento, lo que puede llevar a confundir, pues no nos permite ver cuando realmente realizamos una modificación.

¿Hay alguna forma de evitar que la macro participe en la modificación de la hoja de calc?

Les recuerdo que esta macro no debe modificar nada en la hoja, solo debe brindar una ayuda visual al resaltar la fila y la columna pero no modificar el documento como tal.

Gracias,

Roberto morales
Libreoffice 5.1.3 Debian 8 Jessie
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Evitar que macro "resaltar fila activa", modifique docum

Mensaje por xiseme »

Si acaso estás usando esto https://forum.openoffice.org/es/forum/v ... 166#p37741 la macro crea los rectángulos cuando nos situamos en el área de marcado y elimina los dibujos (los rectángulos) al salir de ella. Y claro eso es una modificación de la hoja.

Se me ocurres dos cosas que probar:
1.- Que marque fila/columna completa → quitar de la macro la parte que chequea en qué fila columna estamos
2.- No crear los rectángulos, asumir que ya están creados.

Solo con 1.- al estar la macro asociada al evento hoja no sucedería al cambiar de celda pero sí seguramente al cambiar de hoja.
Con 2.- si alguien elimina/modifica manualmente alguno de los rectángulos provocaría un error. Además si se aplica de modo global y no solo en un archivo... habría que crear los dibujos primero, antes de aplicar (se generaría otro error)
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Evitar que macro "resaltar fila activa", modifique docum

Mensaje por fornelasa »

rojes escribió:Les recuerdo que esta macro no debe modificar nada en la hoja, solo debe brindar una ayuda visual al resaltar la fila y la columna pero no modificar el documento como tal.
Hasta donde yo recuerdo así lo hacía, solo resaltaba la fila activa. Tal vez al adaptar la macro a una situación especifica se agrego "algo" que hace que se muestre dicha opción.

Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Evitar que macro "resaltar fila activa", modifique docum

Mensaje por rojes »

Gracias por sus respuestas,

Xixeme, en tu análisis me parece que entiendes un poco a lo que me refiero, es un buen comienzo, de todos modos después de leer la respuesta de Federico intento explicarme mejor.

Federico, recuerdas bien la macro "no modifica nada", pero da a entender que sí, por ejemplo: si abres el documento, activas la macro, te desplazas a otra celda, cierras el documento y el programa te pregunta: "Quiere guardar los cambios ?", Cuales?, si no he hecho nada. Aparentemente esto no representa ningún problema, pero cuando uno quiere saber realmente cuando se modifica el documento, esto puede ser desagradable, pues hay momentos en que esta situación. puede confundirnos, lo digo por experiencia propia, ya lo viví.

Entonces a lo que me refiero en este tema es a si hay alguna forma de evitar que se produzca el comportamiento descrito.

Roberto
Libreoffice 5.1.3 Debian 8 Jessie
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Evitar que macro "resaltar fila activa", modifique docum

Mensaje por fornelasa »

Ya es claro ...... pero ya revisé la macro de Mauricio en el link que muestras y se ve todo normal, no aparece dicho "inconveniente".
Al final me quedé que usasté dicha opción.

Saludos, Federico.
Última edición por fornelasa el Vie Jun 19, 2015 9:39 pm, editado 1 vez en total.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Evitar que macro "resaltar fila activa", modifique docum

Mensaje por rojes »

Tienes toda la razón, acabo de probar la macro de Mauricio y no provoca lo mencionado, tendré que revisar bien si fue en otra propuesta del mismo Mauricio, tuya o de Xiseme donde ocurre esta situación, porque el tema lo traslade por petición de alguno de ustedes no recuerdo quien, a extensiones, en donde se hicieron otros aportes, entre otros uno de Xiseme donde propone una alternativa que solo resalta las celdas con información.

Otra cosa que se me ocurre, es que como anotas, se haya agregado algo al adaptarla a mi documento. voy a revisar e informo lo que pueda estar sucediendo.

Gracias,

Roberto
Libreoffice 5.1.3 Debian 8 Jessie
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Evitar que macro "resaltar fila activa", modifique docum

Mensaje por fornelasa »

ok, tambien pudiéramos intentar: Asignando esta macro al evento "Documento va a ser cerrado" en Herramientas <> Personalizar <> Eventos

Código: Seleccionar todo

sub Cerrar
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
ThisComponent.Store
end sub
Ojalá sirva.

Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Responder