[RESUELTO] resaltar filas y columnas al seleccionar celda

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

[RESUELTO] resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Vie Jun 24, 2011 12:38 am

Hola a todos,

Mi objetivo es lograr que al colocarme sobre una celda (cualquiera) el documento resalte tanto la fila como la columna, es decir, formen una cruz cuyo centro es la celda seleccionada.

En excel encontré varios códigos pero este que anexo es el mas sencillo:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Cells.Interior.ColorIndex = xlNone
Target.EntireRow.Interior.ColorIndex = 38
Target.EntireColumn.Interior.ColorIndex = 38
End Sub



Pero este código causa algunos errores en excel asi que proponen este:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim MiRango As Range
Application.ScreenUpdating = False

With Application.Cells
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
Set MiRango = Application.Union(Range(Cells(Target.Row, 1), Target), _
Range(Cells(1, Target.Column), Target))

With MiRango.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 7
End With
With MiRango.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 7
End With
With MiRango.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 7
End With
With MiRango.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 7
End With

Application.ScreenUpdating = True
Set MiRango = Nothing
End Sub



Hay otras paginas pero todo es para excel y necesito para openoffice

De antemano mil gracias por tu ayuda.
Saludos
Última edición por mauricio el Mié Nov 30, 2016 9:27 pm, editado 1 vez en total
Razón: Marcar resuelto correctamente
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor mauricio » Vie Jun 24, 2011 1:04 am

Hola...

El siguiente código, asignado al evento "Al cambiar seleccion" de la hoja donde quieres esto hace el trabajo, el estilo de celda "Resaltado" tienes que tenerlo creado a tu gusto.
Código: Seleccionar todo   Expandir vistaContraer vista
Option Explicit

Sub ResaltarSeleccion()
Dim oDoc As Object
Dim oControlador As Object
Dim oSel As Object
Dim oRango As Object
Dim oRango1 As Object
Dim oRango2 As Object

   oDoc = ThisComponent
   oControlador = oDoc.CurrentController
   oSel = oControlador.Selection
   If oSel.ImplementationName = "ScCellObj" Then
      oRango = oControlador.getVisibleRange
      oRango1 = oSel.SpreadSheet.getCellRangeByPosition( oSel.CellAddress.Column, oRango.StartRow, oSel.CellAddress.Column, oRango.EndRow+1 )
      oRango2 = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oSel.CellAddress.Row, oRango.EndColumn+1, oSel.CellAddress.Row )
      oRango = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oRango.StartRow, oRango.EndColumn+1, oRango.EndRow+1 )
      oRango.CellStyle = "Default"
      oRango1.CellStyle = "Resaltado"
      oRango2.CellStyle = "Resaltado"
   End If

End Sub

Solo te funcionara si la versión de OOo/LibO que uses ya implementa los eventos de hoja:
captura_004.png

Si tu versión aun no lo hace, aun puedes hacerlo con un poco más de código, pero creo que es tan sencillo actualizar que no vale la pena verlo, si funciona muy bien con este evento.
captura_003.png

NOTA: El código usado tiene una ligera "deficiencia" que hay que subsanar... ¿que deficiencia es esta?

Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], adicionalmente puedes marcar el icono de la tilde verde, de esta forma conseguiremos un foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Vie Jun 24, 2011 4:35 am

Hola Mauricio,

Gracias por la respuesta tan rapida.

Te comento que no me sale "eventos de la hoja" y no se donde encontrar "accion asignada" ni "al cambiar selección"

En fin, no he podido usar el código que publicaste.

Que debo hacer??
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor mauricio » Vie Jun 24, 2011 4:52 am

Si te es posible descarga la ultima version: http://www.libreoffice.org/download con este podrás probarlo.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Vie Jun 24, 2011 6:51 am

Hola,

instalé el 3.3.2 pra probar pero no funciona....

..estoy bajando el 3.3.3 y probaré

Mil gracias
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Vie Jun 24, 2011 7:20 am

Hola mauricio,

Nada no funciona.

Al seleccionar la celda sale una ruedita dando vuelta por unos segundos pero no pasa nada..

..tendra algo que ver con "el estilo de celda "Resaltado" tienes que tenerlo creado a tu gusto." esto a que se refiere??
o sera que debo darle el color en "Resaltado" y si es asi como lo hago??
oRango1.CellStyle = "Resaltado"
oRango2.CellStyle = "Resaltado"


Lo que necesito es que se vea como la segunda captura

Gracias!!
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor mauricio » Vie Jun 24, 2011 2:59 pm

Hola...

Los paso que tienes que hacer son:

1.- Copiar la macro "dentro" del archivo de pruebas
2.- Crear un estillo de celda que se llame Resaltado con el color de fondo que quieras, esto lo resuelves facilmente en la ayuda del programa.
3.- Asignar la macro al avento Al cambiar seleccion

Mejor, solo descarga el archivo anexo.

Eso es todo.
Adjuntos
Resaltar seleccion.ods
(8.69 KiB) 773 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: resaltar filas y columnas al seleccionar celda

Notapor fornelasa » Vie Jun 24, 2011 3:49 pm

Hola...
Bueno si, ya sabemos, siempre hay un agua fiestas, si es que se puede responder, solo por curiosidad, estimado afp_sch ¿eso que utilidad tiene en la practica?, digo.. muy bonito todo, bien, buenos codigos pero....... ¿sera practico eso en el trabajo diario?

Saludos.
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!
Avatar de Usuario
fornelasa
 
Mensajes: 3266
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: resaltar filas y columnas al seleccionar celda

Notapor mauricio » Vie Jun 24, 2011 4:23 pm

Mi estimado FORNELASA, en todos mis años de dar soporte en diferentes foros, me he acostumbrado a todo tipo de peticiones "extrañas" por decir lo menos, casi siempre he llegado a la conclusión de que -todos tenemos diferentes necesidades y lo más importante, diferentes enfoques de su posible satisfacción-...

Un abrazo
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: resaltar filas y columnas al seleccionar celda

Notapor fornelasa » Vie Jun 24, 2011 4:45 pm

Hola, igualmente, ¡un abrazo Mauricio!..... desde la hermana republica de Edo. Mex. (Si..... muy cerquita de )

Saludos, Federico.
Última edición por fornelasa el Sab Feb 09, 2013 11:05 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!
Avatar de Usuario
fornelasa
 
Mensajes: 3266
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: resaltar filas y columnas al seleccionar celda

Notapor mauricio » Vie Jun 24, 2011 5:07 pm

Mira que es chiquito el mundo. Hace años vivi en Tultitlan (Real del bosque), y ahora estoy dando un curso los sábados, ahí cerquita en Cd. Labor. Tenemos que organizar algo un día de estos.

Otro abrazo.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: resaltar filas y columnas al seleccionar celda

Notapor fornelasa » Vie Jun 24, 2011 5:12 pm

Hola, si, jajajajajajaja, vaya que es chiquito el mundo, yo vivo en , si, a ver que dia vamos a comer y platicamos.

Saludos, Federico.
Última edición por fornelasa el Sab Feb 09, 2013 11:04 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!
Avatar de Usuario
fornelasa
 
Mensajes: 3266
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Vie Jun 24, 2011 8:02 pm

Hola FORNELASA,

¿eso que utilidad tiene en la practica?

Primero que todo un saludo y gracias por interesarte en el tema.
Esto de ubicarme en una celda y que se resaltara la columna y la fila se me ocurrió porque tengo un formato de nomina bastante extenso
y al liquidar los tiempos debo colocarlos en una casilla o celda que me queda lejos de los horarios
por lo que se me cansa la vista, además, toca revisar por si hay algún error ya que existe la duda de si me salte o no de fila.

Es algo muy personal pero le podría servir a alguien que maneje formatos extensos.

Saludos!
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Vie Jun 24, 2011 8:34 pm

Mauricio,

Mil gracias por tu ayuda.
Lo único que no entiendo es que me toca mandar la hoja que publicaste a mi documento para que pueda funcionar, al crear nuevo macro y pegar el codigo no me funciona.

Pero bueno lo importante es que voy a ser mas eficiente con este macro, además, mi vista va a esta menos forzada.

De nuevo mil gracias!!
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor fornelasa » Vie Jun 24, 2011 9:49 pm

Hola afp_sch , ok bien, gracias por la aclaración, y si, ya veo su buen uso.

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!
Avatar de Usuario
fornelasa
 
Mensajes: 3266
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: resaltar filas y columnas al seleccionar celda

Notapor afp_sch » Sab Jun 25, 2011 4:06 am

Fresco!

Gracias por tu atención

Saludos!
afp_sch
 
Mensajes: 20
Registrado: Lun Ene 19, 2009 8:48 am

Re: resaltar filas y columnas al seleccionar celda

Notapor rarcos1980 » Mié Nov 30, 2016 8:45 pm

Hola buen dia, agradezco las aportaciones que hacen aquí y la verdad uno que viene de excel nos ayuda mucho, ya que queremos que funcione de la misma manera, pero cada programa tiene lo suyo, eh leido sobre esta macro y la encuentro muy interesante, solo que me gustaría que marcara solo la fila, pero no la columna, espero me puedan apoyar en esto...muchas gracias.


***Listo verifique el codigo y solo comente unas lineas...

Código: Seleccionar todo   Expandir vistaContraer vista
REM  *****  BASIC  *****
Option Explicit

Sub ResaltarSeleccion()
Dim oDoc As Object
Dim oControlador As Object
Dim oSel As Object
Dim oRango As Object
REM Dim oRango1 As Object
Dim oRango2 As Object

   oDoc = ThisComponent
   oControlador = oDoc.CurrentController
   oSel = oControlador.Selection
   If oSel.ImplementationName = "ScCellObj" Then
      oRango = oControlador.getVisibleRange
      REM oRango1 = oSel.SpreadSheet.getCellRangeByPosition( oSel.CellAddress.Column, oRango.StartRow, oSel.CellAddress.Column, oRango.EndRow+1 )
      oRango2 = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oSel.CellAddress.Row, oRango.EndColumn+1, oSel.CellAddress.Row )
      oRango = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oRango.StartRow, oRango.EndColumn+1, oRango.EndRow+1 )
      oRango.CellStyle = "Default"
      REM oRango1.CellStyle = "Resaltado"
      oRango2.CellStyle = "Resaltado"
   End If

End Sub


Muchas gracias!!
Libre office Version: 6.2.8 Windows 10 64bits
rarcos1980
 
Mensajes: 9
Registrado: Vie Jul 22, 2016 4:06 pm

Re: resaltar filas y columnas al seleccionar celda

Notapor mauricio » Mié Nov 30, 2016 9:26 pm

Muy sencillo...
Código: Seleccionar todo   Expandir vistaContraer vista
Sub ResaltarSeleccion()
Dim oDoc As Object
Dim oControlador As Object
Dim oSel As Object
Dim oRango As Object
Dim oRango1 As Object
Dim oRango2 As Object

   oDoc = ThisComponent
   oControlador = oDoc.CurrentController
   oSel = oControlador.Selection
   If oSel.ImplementationName = "ScCellObj" Then
      oRango = oControlador.getVisibleRange
      'oRango1 = oSel.SpreadSheet.getCellRangeByPosition( oSel.CellAddress.Column, oRango.StartRow, oSel.CellAddress.Column, oRango.EndRow+1 )
      oRango2 = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oSel.CellAddress.Row, oRango.EndColumn+1, oSel.CellAddress.Row )
      'oRango = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oRango.StartRow, oRango.EndColumn+2, oRango.EndRow+2 )
      oRango = oSel.SpreadSheet.createCursor()
      oRango.CellStyle = "Default"
      'oRango1.CellStyle = "Resaltado"
      oRango2.CellStyle = "Resaltado"
   End If

End Sub

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: resaltar filas y columnas al seleccionar celda

Notapor rarcos1980 » Mié Nov 30, 2016 9:58 pm

mauricio escribió:Muy sencillo...
Código: Seleccionar todo   Expandir vistaContraer vista
Sub ResaltarSeleccion()
Dim oDoc As Object
Dim oControlador As Object
Dim oSel As Object
Dim oRango As Object
Dim oRango1 As Object
Dim oRango2 As Object

   oDoc = ThisComponent
   oControlador = oDoc.CurrentController
   oSel = oControlador.Selection
   If oSel.ImplementationName = "ScCellObj" Then
      oRango = oControlador.getVisibleRange
      'oRango1 = oSel.SpreadSheet.getCellRangeByPosition( oSel.CellAddress.Column, oRango.StartRow, oSel.CellAddress.Column, oRango.EndRow+1 )
      oRango2 = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oSel.CellAddress.Row, oRango.EndColumn+1, oSel.CellAddress.Row )
      'oRango = oSel.SpreadSheet.getCellRangeByPosition( oRango.StartColumn, oRango.StartRow, oRango.EndColumn+2, oRango.EndRow+2 )
      oRango = oSel.SpreadSheet.createCursor()
      oRango.CellStyle = "Default"
      'oRango1.CellStyle = "Resaltado"
      oRango2.CellStyle = "Resaltado"
   End If

End Sub

Saludos


Muchas Gracias tambien lo resolvi viendo y analizando el codigo muchas gracias brother...
Libre office Version: 6.2.8 Windows 10 64bits
rarcos1980
 
Mensajes: 9
Registrado: Vie Jul 22, 2016 4:06 pm


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado