Um pouco de conversa e uma sugestão...:
No Excel, muitos anos atrás descobri uma função que ligava dois arquivos, um era formulários e você
podia distribuir para pessoas e elas te devolverem preenchidos, então você o colocava em tua
máquina e puxava os dados para outro arquivo que era uma planilha, funcionando como banco de dados.
Quando migrei para o BrOffice, tentei fazer algo parecido mas como tinha e tenho limitação em
programação: preparei o formulário numa planilha, botei para rodar o gravador de macros: copiei os
dados de b1, b2, b3... fui para a planilha dois, inseri uma linha logo no início da planilha,
mandei colar especial, marquei transpor e pronto. Salvei a macro. depois dei uma incrementada. Mas
a minha idéia era transformar em um formulário no futuro. Como não achei um jeito de carregar
temporariamente um figura por um link previamente digitado numa célula, abandonei o projeto (por um
tempo). Agora fui dar uma olhada no arquivo para enviar um exemplo mas minha macro não funcionou
mais. Acho que a fiz no Broffice 2.(alguma coisa).
Alguém sabe por que isto aconteceu (a macro não funcionar mais)?
Mas tentando ajudar o amigo, arrumei um tempinho e refiz as gravações, como não entendo de macros,
tive algumas dificuldades. Pois na gravação de macros ela não leva muito em consideração o pulo de
uma planilha a outra criando algumas dificuldades. Bom, por isso separei em etapas e revisei as
macros.
Enfim, explicando:1- abri um novo arquivo no calc;coloquei dados nas linhas das tabelas a1,a2,a3,a4,a5;botei
para gravar a macro;selecionei as linhas a1 até a5;recortar;interrompi a macro;salvei com um nome;2-tornei a
mandar gravar macro;cliquei na planilha2;interrompi a macro;salvei ....3- (aqui estou na Planilha2)tornei a
mandar gravar a macro;cliquei com o direito do mouse na beira da linha a1;inseri uma linha;cliquei com o
esquerdo do mouse na primeira célula para tirar o selecionado e escolhi: "colar especial", deixei
marcado somente números e texto, marquei transpor e então colei os dados;interrompi a gravação da
macro;salvei...;
fui testar e estudar cada uma;mudei alguma coisas como colocar o nome das planilhas junto ao
endereçamento das células pois isto dava problema dependendo de onde (planilha eu fosse executar a
macro) (aliás, o macro ou a macro?);
4- No final, coloquei para gravar macro novamente e executei cada uma da três macros anteriores e
pimba! Deu certo! e criei uma macro para rodar as três macros anteriores juntas. Creio, que dá para
fazer uma só, mas agora já foi tempo de mais.)
Só tenho dúvida se num determinado dia em que se for fazer a digitação das células na hora de
executar as macros o colar especial estará somente com as opções (texto e números e transpor
corretamente marcados, mas, na pior das hipóteses, isso poderá ser feito manualmente uma vez antes
de executar a macro). O próximo para seria colocar uma figura e associá-la a esta macro.
Não sei se isto resolveria teu problema, aliás, se cada um fosse contar das gambiarras que faz para
"quebrar um galho" dava pano para a manga, mas não sei se isto valeria para uma edição da revista
ou para criar um histórico das necessidades de uso da Suíte. Eu, por exemplo gostaria muito de poder fazer um
formulário com foto (incorporação relativa, sem anexar)no Calc a exemplo do Writer. Então, jamais usaria o
Base.
Abaixo vai como ficaram as 4 macros nos meus testes. Você pode simplesmente colar e executar para
testar, se quiser. Mas o melhor é você fazer em tua máquina mesmo.
AbraçosJoão Alberto___________________
sub dadoscortadosrem ----------------------------------------------------------------------rem define
variablesdim document as objectdim dispatcher as objectrem
----------------------------------------------------------------------rem get access to the documentdocument
= ThisComponent.CurrentController.Framedispatcher =
createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------dim args1(0) as new
com.sun.star.beans.PropertyValueargs1(0).Name = "ToPoint"args1(0).Value = "Planilha1.A$1:$A$8"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:Cut", "", 0, Array())
end sub
sub dadostranspostosrem ----------------------------------------------------------------------rem define
variablesdim document as objectdim dispatcher as objectrem
----------------------------------------------------------------------rem get access to the documentdocument
= ThisComponent.CurrentController.Framedispatcher =
createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------dim args1(0) as new
com.sun.star.beans.PropertyValueargs1(0).Name = "Nr"args1(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "Planilha2.$A$1", 0, args1())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------dim args3(0) as new
com.sun.star.beans.PropertyValueargs3(0).Name = "ToPoint"args3(0).Value = "Planilha2.$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------dim args4(5) as new com.sun.star.beans.PropertyValueargs4(0).Name =
"Flags"args4(0).Value = "SV"args4(1).Name = "FormulaCommand"args4(1).Value = 0args4(2).Name = "SkipEmptyCells"args4(2).Value =
falseargs4(3).Name = "Transpose"args4(3).Value = trueargs4(4).Name = "AsLink"args4(4).Value = falseargs4(5).Name = "MoveMode"args4(5).Value
= 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())
rem ----------------------------------------------------------------------dim args5(0) as new
com.sun.star.beans.PropertyValueargs5(0).Name = "Nr"args5(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args5())
rem ----------------------------------------------------------------------dim args6(0) as new
com.sun.star.beans.PropertyValueargs6(0).Name = "Nr"args6(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
end sub
sub irplanilharem ----------------------------------------------------------------------rem define
variablesdim document as objectdim dispatcher as objectrem
----------------------------------------------------------------------rem get access to the documentdocument
= ThisComponent.CurrentController.Framedispatcher =
createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------dim args1(0) as new
com.sun.star.beans.PropertyValueargs1(0).Name = "Nr"args1(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
end sub
sub transporsemvincularrem ----------------------------------------------------------------------rem define
variablesdim document as objectdim dispatcher as objectrem
----------------------------------------------------------------------rem get access to the documentdocument
= ThisComponent.CurrentController.Framedispatcher =
createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:Cut", "", 0, Array())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:RunMacro", "", 0, Array())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:RunMacro", "", 0, Array())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:RunMacro", "", 0, Array())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:InsertRows", "", 0, Array())
rem ----------------------------------------------------------------------dispatcher.executeDispatch(document,
".uno:RunMacro", "", 0, Array())
end sub