Pergunte aqui
0

Manter formatação da planilha de destino quando se envia dados em oculto

perguntadas 2019-09-25 01:42:33 +0100

imagem do gravatar de vitor alves

Possuo uma macro que envia dados para planilha de destino que abre em oculto, salva e fecha. Porém quando vou abrir a planilha de destino, a linha que estava congelada (cabeçalho) não está mais e está mostrando o início. Parece bobo, mas essa planilha de destino tem mais de 10.000 linhas e o importante para outras pessoas verem é sempre o final.

Segue a macro:

Sub IntroduzirRECOLHIMENTO
Dim oDoc As Object, oPlanOrigem As Object, oDocDestino as Object, oPlanDestino As Object
Dim sEndereco As String, sCol As String, sLin As String, sUrl As String
Dim iLin As Integer
Dim mArg(0) As New com.sun.star.beans.PropertyValue
Dim oCurs As object
Dim LastRow&
Dim LocalRecolhimento as Object
Dim NomePlanilhaREC as Object
dim oLinha as object, oLinha2 as object

oDoc = ThisComponent
oPlanOrigem = oDoc.Sheets.getByName( "DADOS" )
LocalRecolhimento = oDoc.Sheets.getByName( "AUXILIAR" ).getCellRangeByName("T34")
NomePlanilhaREC = oDoc.Sheets.getByName( "AUXILIAR" ).getCellRangeByName("W35")

mArg(0).Name = "Hidden"
mArg(0).Value = True
sUrl = convertToUrl(LocalRecolhimento.STRING) 

oDocDestino = StarDesktop.loadComponentFromURL( sUrl, "_blank", 0, mArg() )
oPlanDestino = oDocDestino.Sheets.getByName( NomePlanilhaREC.STRING )

    oCurs = oPlanDestino.createCursor()
oCurs.gotoEndOfUsedArea(False)
LastRow = oCurs.getRangeAddress().EndRow + 2

oLinha = oPlanOrigem.getCellRangeByName("Dx6:Ef6")
oLinha2 = oPlanDestino.getCellRangeByName("B" & LastRow & ":j" & LastRow & "")
 oLinha2.setDataArray( oLinha.getDataArray )

oDocDestino.getCurrentController.select(oPlanDestino)    
oDocDestino.getCurrentController.freezeAtPosition(0, 2)

oDocDestino.Store
oDocDestino.close(true)

End Sub

Queria saber se há algo que possa fazer para manter a linha congelada e o final da planilha de destino à mostra após o envio de dados pela planilha de origem.

Tentei adicionar o seguinte comando à macro para fixar a linha. A macro rodou mas sem resultado:

oDocDestino.getCurrentController.freezeAtPosition(0, 2)

Caso não consiga, penso em colocar um botão para freezar a linha e ir pra última linha na planilha de destino.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

0

respondidas 2019-09-25 04:38:35 +0100

@vitor alves, fiz com o gravador de macro, o comando é diferente:

sub IrCongelar
dim document, dispatcher as object
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 = "$A$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:FreezePanes", "", 0, Array())
end sub

-----------------------------------------------------------------------------

ATENÇÂO:: Para dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha Descrição da imagem a esquerda da resposta, para finalizar a pergunta.

editar assinalar como ofensivo Excluir Link mais

Comentários

Caro Gilberto, também fiz pela gravação de início, porém testei e não surte efeito. A planilha de destino abre em oculto e salva os dados e talvez por isso "reseta" esse tipo de configuração da planilha, retirando o congelamento anteriormente colocado. Encontrei uma macro que faz o mesmo procedimento, porém não usa o "dispatcher" como em gravação de macros. Muito útil, caso queira substituir o método de gravação, mas não consegui encaixá-la neste caso em específico. Segue abaixo a macro sem despatcher:

Sub congelar()
Dim oDoc As object
dim oHojaActiva as object
dim oRango as object
oDoc = ThisComponent
oHojaActiva = oDoc.Sheets.getByName( "Planilha2" )
oDoc.getCurrentController.select(oHojaActiva)
oDoc.getCurrentController.freezeAtPosition(1, 2)
End Sub
imagem do gravatar de vitor alvesvitor alves ( 2019-09-25 04:52:11 +0100 )editar

andei buscando e encontrei este tópico. Parece que quando se abre uma planilha em modo "hidden" se perde essa configuração de se congelar linhas/colunas. Vide link:

Vincular texto

Mas obrigado mesmo assim!

imagem do gravatar de vitor alvesvitor alves ( 2019-09-25 06:41:52 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-09-25 01:42:33 +0100

Lidas: 11 vezes

Última atualização: Sep 25