[RESUELTO] Macro no copia contenido tipo fecha

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
aacurso
Mensajes: 2
Registrado: Jue Feb 21, 2019 2:46 pm

[RESUELTO] Macro no copia contenido tipo fecha

Mensaje por aacurso »

Hola.

Estoy intentando copiar todas las hojas de un fichero Calc dentro de una misma hoja usando la Macro que publicó Federico, por aquí fornelasa en este mismo foro https://forum.openoffice.org/es/forum/v ... 232#p23134.

Código: Seleccionar todo

Sub UnirHojas()
dim document as object
dim dispatcher as object
dim args1(5) as new com.sun.star.beans.PropertyValue
dim args3(0) as new com.sun.star.beans.PropertyValue
'----------------------------------------------------------------------------------------------------------------------------
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args3(0).Name = "Sel"
args3(0).Value = true
'----------------------------------------------------------------------------------------------------------------------------
ThisComponent.Sheets.InsertNewByName("UnionDeDatos",0)
ThisComponent.CurrentController.Select(ThisComponent.Sheets(0).GetCellRangeByName("A1"))
'-----------------------------------------------------------------------------------------------------------------------------
for a = 1 to ThisComponent.Sheets.GetCount()-1
ThisComponent.CurrentController.Select(ThisComponent.Sheets(a).GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
args1(0).Name = "Nr"
args1(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
args1(0).Name = "Flags"
args1(0).Value = "SV"
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoLeftToStartOfData", "", 0, args1())
next
'----------------------------------------------------------------------------------------------------------------------------------------
ThisComponent.CurrentController.Select(ThisComponent.Sheets(0).GetCellRangeByName("A1"))
dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args3())
args1(0).Name = "aExtraWidth"
args1(0).Value = 100
dispatcher.executeDispatch(document, ".uno:SetOptimalColumnWidth", "", 0, args1())
End Sub
El problema es que el contenido de las celdas de tipo fecha no las copia (quedan en blanco en la copia).

Si cambio el tipo de celda que contiene una fecha para que sea tipo número, sí se copia en formato número (número que identifica a la fecha), pero si quiero tener en la hoja copia el formato fecha, debería ir una a una por cada celda para cambiar su tipo a fecha (las fechas aparecen siempre en la misma columna, pero en filas aleatorias y en esta misma columna aparecen también otro tipo de datos (texto, números) por lo que no compensa.

¿Alguna sugerencia para resolver el problema?
Gracias.
Última edición por aacurso el Jue Feb 21, 2019 8:56 pm, editado 1 vez en total.
LibreOffice 6.0 en Ubuntu 18.04.2 LTS
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro no copia contenido tipo fecha

Mensaje por fornelasa »

Intenta con:

Código: Seleccionar todo

args1(0).Value = "SVDFT"
cambiando la linea correspondiente-
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!
aacurso
Mensajes: 2
Registrado: Jue Feb 21, 2019 2:46 pm

Re: Macro no copia contenido tipo fecha

Mensaje por aacurso »

Gracias Federico.
Tu solución ha funcionado a la perfección.
Saludos.
LibreOffice 6.0 en Ubuntu 18.04.2 LTS
Responder