[RESUELTO] Resaltar Celdas determinadas según celda activa

Discute sobre la aplicación de hojas de cálculo

[RESUELTO] Resaltar Celdas determinadas según celda activa

Notapor canariohippie » Mié Ene 11, 2017 8:13 pm

Saludos:

¿Como podría hacer para que se resalte unas celdas determinadas dependiendo donde se encuentre la celda activa? , me explico, buscando, lo que encuentro en su mayoría son ejemplos en los que se resalta a través de macros toda la fila y la columna donde se encuentre la celda activa (en forma de cruz),pero lo que quiero, y en relación al archivo que adjunto es que si estoy en la celda E14, por ejemplo, se resaltan sólo las celdas E7 ("Ventas"), y A14 y B14 ("Luis León Parra").

Resaltar celda activa.ods
(24.14 KiB) 34 veces




Captura.jpg
Ejemplo del resalte de celda según la celda activa


Gracias por adelantado.
Última edición por canariohippie el Dom Ene 22, 2017 10:36 pm, editado 2 veces en total
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Avatar de Usuario
canariohippie
 
Mensajes: 24
Registrado: Vie Dic 16, 2016 11:26 pm

Re: Resaltar Celdas determinadas según celda activa

Notapor fornelasa » Jue Ene 12, 2017 12:29 am

Si es que hubiera entendido bien entonces pudiéramos crear por ejemplo cuatro estilos de celda ( llamados azulcielo, normal1, turquesa3 y urquesa4 ):
Aquí una posible opción:
Saludos, Federico.
Adjuntos
ResaltarFila.ods
Resaltar fila versión II
(20.42 KiB) 27 veces
Última edición por fornelasa el Jue Ene 19, 2017 7:05 pm, editado 2 veces en total
lo 5.3.5 | aoo 4.1.3 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2693
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Resaltar Celdas determinadas según celda activa

Notapor canariohippie » Jue Ene 19, 2017 5:33 am

fornelasa escribió:Si es que hubiera entendido bien entonces pudiéramos crear por ejemplo tres estilos de celda ( llamados azulcielo, normal1 y turquesa3 ):
Aquí una posible opción:
Saludos, Federico.


Gracias por tu tiempo.

La macro al aplicarla a un archivo mayor en cuanto a filas y columnas me provoca algo de lag, lo cual puedo vivir con ello por supuesto, no obstante, apelo a otras alternativas . Quizás tu o alguien sepa hacer lo mismo con otra macro alternativa. En excel yo trabajaba con una macro que conjugaba la macro con formatos condicionales, esto lo digo como idea de una posible alternativa.

Gracias de antemano
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Avatar de Usuario
canariohippie
 
Mensajes: 24
Registrado: Vie Dic 16, 2016 11:26 pm

Re: Resaltar Celdas determinadas según celda activa

Notapor fornelasa » Jue Ene 19, 2017 7:04 am

canariohippie escribió:En excel yo trabajaba con una macro que conjugaba la macro con formatos condicionales, esto lo digo como idea de una posible alternativa.
Creo que no es correcto decir lo anterior sin mostrar la macro o formato condicional de referencia. Desde mi punto de vista si no se muestra el codigo la cita queda invalidada.
canariohippie escribió:La macro al aplicarla a un archivo mayor en cuanto a filas y columnas me provoca algo de lag, lo cual puedo vivir con ello por supuesto, no obstante, apelo a otras alternativas
Habría que ver cuanto pesa tu archivo por lo tanto así sin ver digo mi opinión: el manejo de archivos grandes no es uno de los fuertes del programa Calc independientemente de las macros.

Si claro hay otras opciones, por ejemplo usar un subradado de celdas en vez de estilos pero LO tiene un bug con respecto a este tema, en AOO funciona bien aunque no sé todavia si lo hace rapido.
El archivo anexo puede adecuarse a lo que solicitas pero no funciona en LO por el bug que te comenté.

Saludos, Federico.
Adjuntos
Resaltar.ods
EjemploParaResaltar
(9.34 KiB) 18 veces
lo 5.3.5 | aoo 4.1.3 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2693
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Resaltar Celdas determinadas según celda activa

Notapor canariohippie » Jue Ene 19, 2017 7:22 am

fornelasa escribió:
canariohippie escribió:En excel yo trabajaba con una macro que conjugaba la macro con formatos condicionales, esto lo digo como idea de una posible alternativa.
Creo que no es correcto decir lo anterior sin mostrar la macro de referencia. Desde mi punto de vista si no se muestra el codigo la cita queda invalidada.
canariohippie escribió:La macro al aplicarla a un archivo mayor en cuanto a filas y columnas me provoca algo de lag, lo cual puedo vivir con ello por supuesto, no obstante, apelo a otras alternativas
Habría que ver cuanto pesa tu archivo por lo tanto así sin ver digo mi opinión: el manejo de archivos grandes no es uno de los fuertes del programa Calc independientemente de las macros.

Si claro hay otras opciones, por ejemplo usar un subradado de celdas en vez de estilos pero LO tiene un bug con respecto a este tema, en AOO funciona bien aunque no sé todavia si lo hace rapido.

Saludos, Federico.


Gracias por tu atención

No puse nada porque no creía conveniente subir un archivo excel con el ejemplo sobre resaltado, por lo de que este es un foro sobre LO/OO.

Resaltar en excel.xlsm
(16.76 KiB) 24 veces


La macro:

Código: Seleccionar todo   Expandir vistaContraer vista
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Range("a8").Calculate
End Sub


En la captura muestro el codigo de los formatos condicionales, creo que no se ve muy bien.

Captura.JPG
Captura.JPG (9.81 KiB) Visto 726 veces



Configuración de los formatos condicionales:

Código: Seleccionar todo   Expandir vistaContraer vista
=COLUMNA()=CELDA("Columna")  en el rango de celdas =$A$4:$I$4 (se resalta en verde)

=FILA()=CELDA("Fila") en el rango de celdas =$A$5:$B$24 (se resalta en verde)
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Avatar de Usuario
canariohippie
 
Mensajes: 24
Registrado: Vie Dic 16, 2016 11:26 pm

Re: Resaltar Celdas determinadas según celda activa

Notapor mauricio » Jue Ene 19, 2017 7:34 am

Otra opción...
test.ods
(17.94 KiB) 26 veces

Para quien le interese, aquí el código usado:
Código: Seleccionar todo   Expandir vistaContraer vista
#!/usr/bin/env python
import uno


last_sel1 = None
last_sel2 = None
ra = None


def resaltar(event):
    global last_sel1
    global last_sel2
    global ra

    if event.ImplementationName != 'ScCellObj':
        return
    try:
        if not last_sel1 is None:
            last_sel1.CellStyle = 'Original1'
        if not last_sel2 is None:
            last_sel2.CellStyle = 'Original2'
    except:
        pass

    sheet = event.getSpreadsheet()
    if ra is None:
        cursor = sheet.createCursorByRange(event)
        cursor.collapseToCurrentRegion()
        ra = cursor.getRangeAddress()

    col = event.CellAddress.Column
    row = event.CellAddress.Row
    if row < 7:
        return

    if col > ra.EndColumn or row > ra.EndRow:
        return

    last_sel1 = sheet.getCellByPosition(col, 6)
    last_sel1.CellStyle = 'Resaltado'
    last_sel2 = sheet.getCellRangeByPosition(0, row, 1, row)
    last_sel2.CellStyle = 'Resaltado'

    return
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.3 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5245
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Resaltar Celdas determinadas según celda activa

Notapor fornelasa » Jue Ene 19, 2017 7:03 pm

canariohippie, He actualizado el archivo en el segundo post de este debate, considero que la tarea es ahora más rápida. Por el momento es lo menos lag que puedo hacerlo.

mauricio, no supe como hacer funcionar la tarea si le agrego por ejemplo 500 filas más (A28:I527), parece que ya no funciona, parece ....

Saludos, Federico.
Última edición por fornelasa el Jue Ene 19, 2017 7:51 pm, editado 1 vez en total
lo 5.3.5 | aoo 4.1.3 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2693
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Resaltar Celdas determinadas según celda activa

Notapor mauricio » Jue Ene 19, 2017 7:09 pm

fornelasa escribió:mauricio, no supe como hacer funcionar la tarea si le agrego por ejemplo 500 filas más (A28:I527), parece que ya no funciona, parece .....


Si mira el código... toma la región actual de los datos para que no lo haga fuera de este rango... pero como es una variable global, solo valida si ya esta definida la primera vez... por lo que creo, si agregados datos una vez ha arrancado, no toma el cambio de rango, solo guarda, cierra y vuelve a abrir, debería tomar el nuevo rango la primera vez... de tarea le queda a alguien hacer esto de forma dinamica... tip -es mala idea hacerlo cada que cambie el rango-

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.3 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5245
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Resaltar Celdas determinadas según celda activa

Notapor fornelasa » Jue Ene 19, 2017 7:50 pm

mauricio, efectivamente era eso, funciona perfectamente y ¡rápido! :super:

Saludos, Federico.
lo 5.3.5 | aoo 4.1.3 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2693
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Resaltar Celdas determinadas según celda activa

Notapor canariohippie » Vie Ene 20, 2017 4:58 pm

Gracias por vuestra atención, fornelasa efectivamente va mas rápido la 2ª versión que has hecho, no obstante querría adaptar primero el código de mauricio en otra hoja de calculo, ya que me da la impresión que va si cabe mas suave, pero no tengo claro como insertarla en una hoja de calculo ni tan siquiera editarla. Creo que no se hace igual que una macro VBA, ya que la de mauricio es pithon, no?.

He leído que se debe insertar a través de un archivo de texto plano
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Avatar de Usuario
canariohippie
 
Mensajes: 24
Registrado: Vie Dic 16, 2016 11:26 pm

Re: Resaltar Celdas determinadas según celda activa

Notapor fornelasa » Vie Ene 20, 2017 6:06 pm

Efectivamente es Python, mira todo este tema y "baja" la extensión.
https://forum.openoffice.org/es/forum/v ... HON#p55495
Saludos, Federico.
lo 5.3.5 | aoo 4.1.3 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2693
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Resaltar Celdas determinadas según celda activa

Notapor fornelasa » Vie Ene 20, 2017 7:40 pm

Y por ultimo (de mi parte) una nueva versión más "suave" y más "similar" a Excel en cuanto a formatos condicionales, y según yo: "rápida".
Saludos, Federico.
Adjuntos
ResaltarFila3.ods
Versión 3
(20.77 KiB) 37 veces
lo 5.3.5 | aoo 4.1.3 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2693
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Resaltar Celdas determinadas según celda activa

Notapor canariohippie » Dom Ene 22, 2017 10:35 pm

fornelasa escribió:Y por ultimo (de mi parte) una nueva versión más "suave" y más "similar" a Excel en cuanto a formatos condicionales, y según yo: "rápida".
Saludos, Federico.



Perfecto, va genial @fornelasa. Gracias por tu buen hacer.

Por mi doy por solucionado el "topic".
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Avatar de Usuario
canariohippie
 
Mensajes: 24
Registrado: Vie Dic 16, 2016 11:26 pm


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados