Página 1 de 1

[RESUELTO] Resaltar Celdas determinadas según celda activa

Publicado: Mié Ene 11, 2017 8:13 pm
por bernarbernuli
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) Descargado 562 veces

Ejemplo del resalte de celda según la celda activa
Ejemplo del resalte de celda según la celda activa
Gracias por adelantado.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 12, 2017 12:29 am
por fornelasa
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.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 5:33 am
por bernarbernuli
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

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 7:04 am
por fornelasa
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.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 7:22 am
por bernarbernuli
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) Descargado 522 veces
La macro:

Código: Seleccionar todo

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 10209 veces

Configuración de los formatos condicionales:

Código: Seleccionar todo

=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)

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 7:34 am
por mauricio
Otra opción...
test.ods
(17.94 KiB) Descargado 376 veces
Para quien le interese, aquí el código usado:

Código: Seleccionar todo

#!/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

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 7:03 pm
por fornelasa
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.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 7:09 pm
por mauricio
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

Re: Resaltar Celdas determinadas según celda activa

Publicado: Jue Ene 19, 2017 7:50 pm
por fornelasa
mauricio, efectivamente era eso, funciona perfectamente y ¡rápido! :super:

Saludos, Federico.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Vie Ene 20, 2017 4:58 pm
por bernarbernuli
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

Re: Resaltar Celdas determinadas según celda activa

Publicado: Vie Ene 20, 2017 6:06 pm
por fornelasa
Efectivamente es Python, mira todo este tema y "baja" la extensión.
https://forum.openoffice.org/es/forum/v ... HON#p55495
Saludos, Federico.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Vie Ene 20, 2017 7:40 pm
por fornelasa
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.

Re: Resaltar Celdas determinadas según celda activa

Publicado: Dom Ene 22, 2017 10:35 pm
por bernarbernuli
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".