Pero hoy he llegado a un punto en que no encuentro lo que necesito.
Tengo un documento con un listado de facturas con sus datos correspondientes fecha, importe, proveedor, numero, etc y he conseguido adaptar codigo para una macro para que una vez me situe en el nº de factura al ejecutarla la copie en otra hoja del documento donde tengo un formato de hoja para imprimir con cierto datos de la factura seleccionada. Hasta aquí todo bien.
El problema viene que en el listado de las factura el nº de factura esta en una sola celda pero en donde se tiene que copiar es una hoja cuyas celdas tienen un ancho de 2 y su destino es una combinación de celdas que al ejecutar la macro deshace esa combinación y copiando el dato en la celda AJ13.
Este es el código de la macro:
Código: Seleccionar todo
REM ***** BASIC *****
'Procedimiento para copiar la selección actual
Sub CopiarSeleccion()
'Declaración de variables
Dim oDoc As Object
Dim oHojas As Object
Dim oHojaOrigen As Object
Dim oHojaDestino As Object
Dim oOrigen As Object
Dim oDestino As Object
oDoc = ThisComponent 'Documento actual
oHojas = oDoc.getSheets() 'Colección de hojas del documento
oHojaOrigen = oHojas.getByName( "Hoja1" ) 'Asignamos la variable a la hoja con nombre "Hoja1"
oHojaDestino = oHojas.getByName( "Hoja_entrada" ) 'Idem líena anterior
'Capturamos la selección actual en la variable oOrigen
oOrigen = oDoc.getCurrentSelection()
'Seleccionamos la celda donde se pegarán los datos, la cual la tomamos en este ejemplo de la celda AJ13.
oDestino = oHojaDestino.getCellRangeByName( "AJ13" )
'Si lo queremos dejar estático usamos la siguiente línea:
'oDestino = oHojaDestino.getCellRangeByName( "A1" )
'Podemos sustituír la celda A1 por cualquier otra
'Procedemos a copiar el rango
oHojaOrigen.copyRange( oDestino.getCellAddress, oOrigen.getRangeAddress() )
'Accedemos a los datos copiados
oDoc.getCurrentController.select( oDestino )
End Sub
Gracias por la ayuda.