Trabajo desde un libro A y me gustaría importar (copiar) todas las hojas de otro libro (libro B).
Para realizar esta operación tengo que cumplir con dos requisitos.
1. No puedo mencionar la url exacta del libro B porque puede cambiar.
2. No puedo nombrar la hojas destinadas a ser copiadas porque, ellas tampoco, no son fijas (cambian de nombre cada semana)
Gracias a este foro y después de varios días de búsquedas y pruebas, he encontrado los dos códigos que siguen.
El primero cumple plenamente con el primero requisito (Buscar un documento sin tener que escribir su url en la macro).
Pero el segundo (que, al parecer, importa todas las hojas), me da problema. No lo entiendo y soy incapaz de adaptarlo...
Primer código:
Código: Seleccionar todo
Sub ElegirUnLibro
Dim oFolderDialog As Object
Dim oFileDialog as Object, oFiles As Object
Dim Valor As Integer
Dim NomDoc as String
oFileDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
with oFileDialog
.DisplayDirectory = ConvertToUrl("C:\")
.appendFilter("Calc documents (*.ods)", "*.ods") 'filtra solo documentos ods
End With
Valor = oFileDialog.Execute()
oFiles = oFileDialog.getFiles
NomDoc = ConvertFromURL(oFiles(0))
Call CopiarTodo
End Sub
Segundo codigo:
Código: Seleccionar todo
Sub CopiarTodo()
util = createUnoService("org.universolibre.EasyDev")
source = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
target = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
doc = ThisComponent
source.Doc = doc
new_doc = util.newDoc("")
target.Doc = new_doc
util.sheetCopyToDoc(source, target, -1, True, False)
End Sub
Atentamente
Marc