Bienvenidos a open-office.es, web no oficial en español para OpenOffice y derivados

Seleccionar celdas, rangos, rangos con nombre, filas o columnas desde una macro en Calc

Estas tres funciones que te presentamos te permiten seleccionar celdas, rangos, rangos con nombre, filas o columnas de Calc desde una macro en OOo Basic.

El sistema es sencillo, y conocido para seleccionar filas, rangos o rangos con nombre, en cuyo caso siempre se utiliza la misma instrucción: getCelRangeByName. El rango indicado (B8, o B8:C14, o un rango con nombre) quedará inmediatamente seleccionado en la hoja activa.

No es tan sencillo para seleccionar filas o columnas. Habitualmente, los programadores seleccionan un rango de celdas, como por ejemplo, para seleccionar la columna B seleccionan el rango B1:B65536. Pero esto puede resultar muy peligroso, sobre todo, en la actual carrera entre las suites en cuanto al número de columnas y de filas, que en la versión 3.3 son unas pocas más... exactamente 1.048.576 filas.

Por lo tanto es mejor utilizar otro sistema; el que aquí presentamos seleccionará todas las filas (o columnas) que ocupe el rango indicado. Por ejemplo, el rango C4:C8 seleccionará las filas 4 a la 8.

public sub SeleccionarRango( cRango as string )
' cRango puede ser una celda A1, un rango A1:B3, o un rango con nombre
dim oRango as object

    oRango = ThisComponent.getCurrentController.getActiveSheet().getCellRangeByName( cRango )
    ThisComponent.getCurrentController.select( oRango )
   
end sub

public function SeleccionarFila( cRango as string )
' Selecciona las filas donde se situa cRango
' cRango puede ser una celda A1, un rango A1:B3, o un rango con nombre
dim oHoja   as object
dim dispatcher as object

    SeleccionarRango( cRango )
    oHoja = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dispatcher.executeDispatch(oHoja, ".uno:SelectRow", "", 0, Array())

end Function

public function SeleccionarColumna( cRango as string )
' Selecciona las columnas donde se situa cRango
' cRango puede ser una celda A1, un rango A1:B3, o un rango con nombre
dim oHoja   as object
dim dispatcher as object

    SeleccionarRango( cRango )
    oHoja = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dispatcher.executeDispatch(oHoja, ".uno:SelectColumn", "", 0, Array())

end Function

4 comentarios

Comentario De: cesar [Visitante]
cesar
Buenos dias humm ejecuto el codigo y me dice que el argumento no es opcional un error de ooo basic que puede ser ? gracias por sus escritos de programacion en ooo
03.09.13 @ 18:24
Comentario De: [Miembro]
Debes indicar un argumento para que se ejecuten las funciones, por ejemplo: SeleccionarRango("B2:H12") selecciona las celdas B2 a H12 SeleccionarFila("B2") selecciona la fila 2 SeleccionarColumna("H12") selecciona la columna H La selección no se muestra, pero si luego, por ejemplo, lo rellenas con un fondo, puedes comprobar que efectivamente quedan seleccionadas. Saludos
03.09.13 @ 20:57
Comentario De: JRS [Visitante]
JRS
Help me!! Necesito configurar una macro que seleccione únicamente hasta donde encuentre la última celda con valor y en base a ello graficar.
21.04.14 @ 21:38
Comentario De: [Miembro]
JRS: Mejor pásate por el Foro Oficial y allí quizás encontremos la forma de ayudarte con la macro. No olvides adjuntar lo que ya llevas hecho, para que sepan que lo estás intentando :)
22.04.14 @ 10:16


Form is loading...

Otros usuarios vieron...

  • Calcular días laborables

    También se ha preguntado en varios foros el modo de calcular el próxima día laborable dada una fecha inicial y un plazo de días laborables, por ejemplo, para calcular hast

  • Este procedimiento para ordenar matrices es, en la gran mayoría de casos, más rápido que el método de la burbuja.

    Para conocer más sobre estos métodos puedes consultar las sigui

  • El comando MsgBox en OpenOffice.org Basic

    El comando MsgBox de OpenOffice.org Basic muestra un cuadro de diálogo que contiene un mensaje y devuelve un valor; admite varios parámetros.

    Estos parámetros nos permiten modificar el título que

Patrocinado por SBS  Contacto • ©2016 by SLV-es