[RESUELTO] Resaltar Celdas determinadas según celda activa
- bernarbernuli
- Mensajes: 30
- Registrado: Vie Dic 16, 2016 11:26 pm
[RESUELTO] Resaltar Celdas determinadas según celda activa
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").
Gracias por adelantado.
¿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").
Gracias por adelantado.
Última edición por bernarbernuli el Dom Ene 22, 2017 10:36 pm, editado 2 veces en total.
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Re: Resaltar Celdas determinadas según celda activa
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.
Aquí una posible opción:
Saludos, Federico.
- Adjuntos
-
- ResaltarFila.ods
- Resaltar fila versión II
- (20.42 KiB) Descargado 483 veces
Última edición por fornelasa el Jue Ene 19, 2017 7:05 pm, editado 2 veces 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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
- bernarbernuli
- Mensajes: 30
- Registrado: Vie Dic 16, 2016 11:26 pm
Re: Resaltar Celdas determinadas según celda activa
Gracias por tu tiempo.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.
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)
Re: Resaltar Celdas determinadas según celda activa
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ó:En excel yo trabajaba con una macro que conjugaba la macro con formatos condicionales, esto lo digo como idea de una posible alternativa.
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.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
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) Descargado 303 veces
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
- bernarbernuli
- Mensajes: 30
- Registrado: Vie Dic 16, 2016 11:26 pm
Re: Resaltar Celdas determinadas según celda activa
Gracias por tu atenciónfornelasa escribió: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ó:En excel yo trabajaba con una macro que conjugaba la macro con formatos condicionales, esto lo digo como idea de una posible alternativa.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.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
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.
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.
La macro:
Código: Seleccionar todo
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("a8").Calculate
End Sub
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)
LibreOffice v5.2.4.2 (en Windows 10 Pro)
Re: Resaltar Celdas determinadas según celda activa
Otra opción...
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
______________________________________________
"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: Resaltar Celdas determinadas según celda activa
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.
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 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Resaltar Celdas determinadas según celda activa
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-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 .....
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: Resaltar Celdas determinadas según celda activa
mauricio, efectivamente era eso, funciona perfectamente y ¡rápido!
Saludos, Federico.
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
- bernarbernuli
- Mensajes: 30
- Registrado: Vie Dic 16, 2016 11:26 pm
Re: Resaltar Celdas determinadas según celda activa
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
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)
Re: Resaltar Celdas determinadas según celda activa
Efectivamente es Python, mira todo este tema y "baja" la extensión.
https://forum.openoffice.org/es/forum/v ... HON#p55495
Saludos, Federico.
https://forum.openoffice.org/es/forum/v ... HON#p55495
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Resaltar Celdas determinadas según celda activa
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.
Saludos, Federico.
- Adjuntos
-
- ResaltarFila3.ods
- Versión 3
- (20.77 KiB) Descargado 548 veces
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
- bernarbernuli
- Mensajes: 30
- Registrado: Vie Dic 16, 2016 11:26 pm
Re: Resaltar Celdas determinadas según celda activa
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)