Sub copySelectedRangeFromSheetToNewDocDemo()
If Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools") Then
GlobalScope.BasicLibraries.loadLibrary("Tools")
endif
Hoja_origen=0
dh = CreateUnoService("com.sun.star.frame.DispatchHelper")
frSrc = ThisComponent.CurrentController.Frame
sheetSrc = ThisComponent.Sheets(Hoja_origen) ' aqui se controla la hoja origen
rgSrc = sheetSrc.GetCellRangeByName(ThisComponent.Sheets(Hoja_origen).Absolutename)
ThisComponent.CurrentController.Select(rgSrc)
dh.ExecuteDispatch(frSrc, ".uno:Copy", "", 0, Array())
' destino
docTrg = StarDesktop.LoadComponentFromUrl("private:factory/scalc", "_blank", 0, Array())
frTrg = docTrg.CurrentController.Frame
sheetTrg = docTrg.Sheets(0)
cellTrg = sheetTrg.GetCellRangeByName("A1")
frTrg.Activate()
docTrg.CurrentController.Select(cellTrg)
'' pegando datos, atributos y todo, con solo la siguente linea
' dh.ExecuteDispatch(frTrg, ".uno:Paste", "", 0, Array())
'' pegando solo datos--------con el grupo de lineas siguintes-------------------
dim argsp(5) as new com.sun.star.beans.PropertyValue
argsp(0).Name = "Flags"
argsp(0).Value = "SVD"
argsp(1).Name = "FormulaCommand"
argsp(1).Value = 0
argsp(2).Name = "SkipEmptyCells"
argsp(2).Value = false
argsp(3).Name = "Transpose"
argsp(3).Value = false
argsp(4).Name = "AsLink"
argsp(4).Value = false
argsp(5).Name = "MoveMode"
argsp(5).Value = 4
dh.ExecuteDispatch(frTrg, ".uno:InsertContents", "", 0, argsp())
'' - fin de pegando solo datos---------------------------------------------------
nombre_hoja_origen=ThisComponent.Sheets(Hoja_origen).name
docTrg.Sheets(Hoja_origen).name=nombre_hoja_origen
nombre_para_libro=ThisComponent.Sheets(Hoja_origen).getCellRangeByName("A1").getstring()
sRutaURL = ThisComponent.getURL()
sRutaCompletaplana = ConvertFromUrl( sRutaURL )
sNombre = FileNameOutOfPath( sRutaURL )
sRuta = DirectoryNameoutofPath(sRutaCompletaplana, GetPathSeparator())
Otra_Ruta=sRuta & GetPathSeparator() & "TEMPO" ' <-- nombre de la carpeta para las copias
existe_otra_ruta=dir(convertToURL(Otra_Ruta),16)
if len(existe_otra_ruta)=0 then
mkdir convertToURL(Otra_Ruta)
endif
wait 50
if len(existe_otra_ruta)=0 then
msgbox "No SE PUDO CREAR LA RUTA " & chr(10) & _
Otra_Ruta & chr(10) & _
"Crearla y luego reintentar"
docTrg.close(False)
stop
endif
existe_copia_libro=dir(convertToURL(Otra_Ruta & GetPathSeparator() & nombre_para_libro & ".ods"),0)
if len(existe_copia_libro)>0 then
Libro_Copia=Otra_Ruta & GetPathSeparator() & nombre_para_libro & "_c.ods"
else
Libro_Copia=Otra_Ruta & GetPathSeparator() & nombre_para_libro & ".ods"
endif
dim propFich()
docTrg.storeAsURL(convertToURL(Libro_Copia), propFich())
docTrg.close(true)
End Sub
Otra_Ruta="C:\Users\Padrao\Documents\Prueba A\Prueba B\Prueba C"
existe_otra_ruta=dir(convertToURL(Otra_Ruta),16)
if len(existe_otra_ruta)=0 then
mkdir convertToURL(Otra_Ruta)
endif
wait 50
if len(existe_otra_ruta)=0 then
msgbox "No SE PUDO CREAR LA RUTA " & chr(10) & _
Otra_Ruta & chr(10) & _
"Crearla y luego reintentar"
docTrg.close(False)
stop
endif
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados