seleccionar celdas visibles
seleccionar celdas visibles
Estimados, estoy buscando si existe alguna manera de seleccionar las celdas visibles, ya que necesito seleccionar sólo unas filas resultado de una operacion de subtotales. Pero me selecciona todos los datos intermedios, en excel hay un comando de "select visible cells".
-
- Mensajes: 261
- Registrado: Lun Dic 01, 2008 7:59 am
- Ubicación: Pereira, Colombia
Re: seleccionar celdas visibles
Saludos: No entiendo lo que Ud. desea, pero si lo que quiere es ocultar columnas para que no se vean ni se impriman. solo seleccionelas desde la letra de Id. de la columna(s) y en Formato Columna Ocultar; gual para ocultar filas. Espero que sea su respuesta correcta.
Para volver a la hoja normal, se conoce que existen columnas ocultas por que la letra distintiva no aparece, salta por ejemplo de A a D, Click en la esquina superior izquierda de la tabla y Formato Columna Mostrar.
Para volver a la hoja normal, se conoce que existen columnas ocultas por que la letra distintiva no aparece, salta por ejemplo de A a D, Click en la esquina superior izquierda de la tabla y Formato Columna Mostrar.
Néstor
S,O. Ubuntu 15 AOO_4.0.1
S,O. Ubuntu 15 AOO_4.0.1
Re: seleccionar celdas visibles
No el problema es que cuando oculto filas con la operación de subtotales, quiero seleccionar sólo los subtotales para copiarlos en otro lugar, me selecciona todos los datos, no únicamente los subtotales. También pasa si oculto filas, si quiero seleccionar sólo las filas visibles para copiarlas en otro lugar me copia todas hasta las que no están visibles. En excel hay un comando para esto que "select visible"
-
- Mensajes: 261
- Registrado: Lun Dic 01, 2008 7:59 am
- Ubicación: Pereira, Colombia
Re: seleccionar celdas visibles
Saludo: Este problema lo he subsanado con el el uso de "Pegado Especial". Acabo de hacer el ensayo de ejecutar una columna con el cálculo del IVA =Valor * ,16 y escogiendo en pegado especial números y formato la ha copiado toda, Atentamente,
Néstor
S,O. Ubuntu 15 AOO_4.0.1
S,O. Ubuntu 15 AOO_4.0.1
Re: seleccionar celdas visibles
Cuando se utilizan subtotales aparece el marco de esquema con el '-' para ver solo los subtotales o el '+' para ver todos los datos.
Si picas en el '-' para ver solo los subtotales y después utilizar el mandato copiar, solo copia las celdas visibles.
Si picas en el '-' para ver solo los subtotales y después utilizar el mandato copiar, solo copia las celdas visibles.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
Apache OpenOffice 4, LibreOffice (Win10x64)
-
- Mensajes: 1
- Registrado: Jue Ago 06, 2009 11:33 pm
Re: seleccionar celdas visibles
En excel una vez que se tienen los subtotales se contrae la vista y me permite ordenar en base a los subtotales. Un Ejemplo de su utilidad es cuando me piden los 30 o 50 principlaes clientes. Con subtotales obtengo el total por cliente, pero no puedo ir mas alla, ordenarlos de mayor a menor, es decir, trabajar solo con las celdas visibles. Ya existe una solicitud para que se incluya en una version posterior, la Issue 70873, hay que votar por ella. Por lo pronto lo que yo hago es copiar y pegar especial (excepto formulas) sobre los mismos datos, luego ordeno en base a una columna que no haya totalizado. En los ultimos renglones quedaran mis lineas de subtotales.
OpenOffice 3.1 en Windows XP Pro SP2
Re: seleccionar celdas visibles
Calc no cuenta (no conozco), una herramienta para seleccionar solo las celdas visibles, pero es trivial implementar una macro que lo haga, por ejemplo:
Posicionen su cursor en "solo una" celda del rango con celdas ocultas, la macro expandirá el rango a la región actual y seleccionará solo las celdas visibles, si las hay. Pero, dicen que siempre hay un pero, intenten copiar la selección, les mostrará un "horrible" mensaje de que no se puede, así que, volvemos a hacer uso de OOo Basic para que nos ayude. Para copiar un rango en otro lado, usamos el método copyRange de la siguiente manera:
Pero, otra vez el pero, el método queryVisibleCells, siempre nos devuelve un conjunto de rangos de celdas, por lo que tenemos que "iterar" entre ellos y copiar cada rango del conjunto, para conocer un poco del manejo de rangos de celdas, les copio parte de mis apuntes:
Cuando en la interfaz del usuario, hacemos la selección de un rango y mantenemos presionada la tecla Ctrl y hacemos un segunda selección de un rango y así sucesivamente, estamos hablando de un conjunto de rangos que tiene sus características particulares para su control y manejo. Para seleccionar varios rangos desde código, primero debemos crear el “contenedor” de estos rangos, veamos como:
No te confundas, los tres líneas donde se agrega el rango con el método addRangeAddress() son iguales, lo que cambia es la forma en que hacemos referencia a la dirección del rango, si vas empezando a programar, te recomiendo ir desglosando cada línea, con el tiempo y la experiencia, podrás concentrar código de forma más natural, por ahora, usa todas las líneas que consideres pertinentes para que tu código lo entiendas con solo verlo.
Por supuesto, también de estos rangos podemos obtener información, por ejemplo, los nombres de los rangos que contiene:
Para finalizar, solo resta poner a trabajar estos tres nuevos conocimientos para lograr copiar las celdas visibles de un conjunto de rangos, pero, esa es su tarea...
Saludos a todos...
Mauricio
Código: Seleccionar todo
Sub SeleccionarSoloCeldasVisibles()
Dim oSel As Object
Dim oCursor As Object
Dim oVisibles As Object
'Obtenemos la selección
oSel = ThisComponent.getCurrentSelection()
'Si es una sola celda
If oSel.getImplementationName = "ScCellObj" Then
'Creamos un cursor
oCursor = oSel.getSpreadSheet.createCursorByRange( oSel )
'Expandimos el cursor a la region actual
oCursor.collapseToCurrentRegion()
'Dejamos solo las celdas visibles
oVisibles = oCursor.queryVisibleCells()
If oVisibles.getCount = 0 Then
MsgBox "No hay celdas ocultas"
Else
'Si hay las seleccionamos
ThisComponent.getCurrentController.select( oVisibles )
End If
End If
End Sub
Código: Seleccionar todo
Sub CopiarRangos1()
Dim oHojaActiva As Object
Dim oOrigen As Object
Dim oDestino As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
'Rango a copiar
oOrigen = oHojaActiva.getCellRangeByName( "A1:B3" )
'Celda destino
oDestino = oHojaActiva.getCellRangeByName( "D10" )
'Copiamos el rango
oHojaActiva.copyRange( oDestino.getCellAddress(), oOrigen.getRangeAddress() )
End Sub
Cuando en la interfaz del usuario, hacemos la selección de un rango y mantenemos presionada la tecla Ctrl y hacemos un segunda selección de un rango y así sucesivamente, estamos hablando de un conjunto de rangos que tiene sus características particulares para su control y manejo. Para seleccionar varios rangos desde código, primero debemos crear el “contenedor” de estos rangos, veamos como:
Código: Seleccionar todo
Sub Acceso_A_Rangos1()
Dim oHojaActiva As Object
Dim oRangos As Object
Dim oRango As Object
Dim oDirRango As Object
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
'Creamos el contender para los rangos
oRangos = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
'Creamos la estructura CellRangeAddress necesaria
oDirRango = oHojaActiva.getCellRangeByName( "A1:B2" ).getRangeAddress()
'Y lo agregamos al contenedor de rangos
oRangos.addRangeAddress( oDirRango ,False )
'Aquí solo hacemos referencia al rango
oRango = oHojaActiva.getCellRangeByName( "E1:G2" )
'Y lo agregamos al contenedor de rangos, nota como tenemos que usar
'el método getRangeAddress para pasarle el argumento correcto
oRangos.addRangeAddress( oRango.getRangeAddress() ,False )
'Aquí agregamos un rango directamente al contenedor
'toma en cuenta que se van acumulando
oRangos.addRangeAddress( oHojaActiva.getCellRangeByName( "D4:E5" ).getRangeAddress() ,False )
'Comprobamos que están correctos seleccionándolos
ThisComponent.getCurrentController.select(oRangos)
End Sub
Por supuesto, también de estos rangos podemos obtener información, por ejemplo, los nombres de los rangos que contiene:
Código: Seleccionar todo
Sub Acceso_A_Rangos2()
Dim oHojaActiva As Object
Dim oRangos As Object
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
'Creamos el contender para los rangos
oRangos = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
'Agregamos los rangos que queramos
oRangos.addRangeAddress( oHojaActiva.getCellRangeByName( "A1:A2" ).getRangeAddress() ,False )
oRangos.addRangeAddress( oHojaActiva.getCellRangeByName( "B4:B5" ).getRangeAddress() ,False )
oRangos.addRangeAddress( oHojaActiva.getCellRangeByName( "C7:C8" ).getRangeAddress() ,False )
oRangos.addRangeAddress( oHojaActiva.getCellRangeByName( "D10:D11" ).getRangeAddress() ,False )
oRangos.addRangeAddress( oHojaActiva.getCellRangeByName( "E13:E14" ).getRangeAddress() ,False )
'Mostramos las direcciones de los rangos
MsgBox oRangos.getRangeAddressesAsString()
End Sub
Saludos a todos...
Mauricio
______________________________________________
"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: seleccionar celdas visibles
¿que paso compañeros, hicieron la tarea?, espero que si, si no, podemos discutir en el foro de macros acerca de este tema, los invito a particiar
Macro para copiar solo celdas visibles
http://user.services.openoffice.org/es/ ... =50&t=1627
Saludos
Mauricio
Macro para copiar solo celdas visibles
http://user.services.openoffice.org/es/ ... =50&t=1627
Saludos
Mauricio
______________________________________________
"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