[RESUELTO] Macro no copia contenido tipo fecha
Publicado: Jue Feb 21, 2019 3:02 pm
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.
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.
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
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.