@Regisfreitas, Via macro no arquivo1 consegui abrir arquivo2 gravar dados nele mas como salva-lo e fechar não consegui.
Então no arquivo2 tentei colocar macro automática para Salvar e Fechar…mas trava, então coloquei um Menu Salvar e Fechar em um clique para facilitar ( fica aberto ajuda para a macro que se auto executa, após abertura, em 3 segundos Salva e mais 2 segundos Fecha, tempo suficiente para a gravação da Nova planilha)
Segue arquivo1 (onde esta o formulário), e arquivo2 banco de dados.
Segue a macro do arquivo1: acertar a Rota do arquivo…
'================================================|
Sub GravarDados
'================================================|
rem define variables
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "FRONTEND.F2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
Dim oSel as Object
oSel = ThisComponent.getCurrentSelection()
Var1 = oSel.getString()
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "Front"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "Plan3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Name"
args2(0).Value = Var1
dispatcher.executeDispatch(document, ".uno:RenameTable", "", 0, args2())
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$B$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
dim args7(5) as new com.sun.star.beans.PropertyValue
args7(0).Name = "Flags"
args7(0).Value = "SVDT"
args7(1).Name = "FormulaCommand"
args7(1).Value = 0
args7(2).Name = "SkipEmptyCells"
args7(2).Value = false
args7(3).Name = "Transpose"
args7(3).Value = false
args7(4).Name = "AsLink"
args7(4).Value = false
args7(5).Name = "MoveMode"
args7(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args7())
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
Dim sRota As String
Dim mArg()
Dim oDoc As Object
sRota = ConvertToUrl( "C:\Users\GILBERTO\Desktop\arquivo2.ods" ) '<======== ATENÇÃO acertar rota.
oDoc = StarDesktop.loadComponentFromURL( sRota, "_blank", 0, mArg() )
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = Var1
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
dim args11(2) as new com.sun.star.beans.PropertyValue
args11(0).Name = "DocName"
args11(0).Value = "arquivo2"
args11(1).Name = "Index"
args11(1).Value = 32767
args11(2).Name = "Copy"
args11(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args11())
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "FRONTEND"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
dispatcher.executeDispatch(document, ".uno:Undo", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Undo", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
End Sub
e a macro do arquivo 2:
'=============================
sub ArquivoSalvarFechar 'Arquivo ativo.
'=============================
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Wait 2000
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
Wait 2000
dispatcher.executeDispatch(document, ".uno:CloseDoc", "", 0, Array())
end sub
ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use na pergunta ou abaixo. Grato.
Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha a esquerda da resposta, para finalizar a pergunta.