@Gilberto Schiavinatto e @mrkalvin
Gilberto…cheguei neste procedimento utilizando o gravador de macros, e fiz as adaptações que precisava. Consegui colocar a última linha como variável do procedimento para que ele selecione até a linha que desejo e depois cole as informações. A única coisa ruim, é que ele fica com a primeira linha selecionável, mesmo utilizando o gravador e clicando ESC, mas isso eu corrigi no passo a passo para o usuário para que não desse problemas.
mrkalvin, infelizmente o loop fica muito pesado, tente executar em loop e demorou mais de 05 min para percorrer 5600 linhas aproximadamente, e esse número vai aumentar a cada mês.
Segue abaixo o procedimento que gravei/adaptei. Caso tenham sugestões, fico contente =]
sub Copiar_Colar_Formulas
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem esta é a variável que criei
dim LastRow as Long
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem aqui é identificado a ultima linha das informações
LastRow = Ultima_Linha_Dados_Finais + 1
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$Z$2:$AF$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
rem aqui é a adaptação que fiz. Não sabia que podia fazer isso neste modo
args3(0).Value = "$Z$3:$AF$" & LastRow
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
rem aqui é o processo para retirar a evidência da cópia, mas não funciona
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())
rem ----------------------------------------------------------------------
dim args10(0) as new com.sun.star.beans.PropertyValue
args10(0).Name = "ToPoint"
args10(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args10())
End Sub