Pergunte aqui
0

Macro no Calc só copia uma vez

perguntadas 2017-10-18 01:06:40 +0200

imagem do gravatar de Luis Rangel

Prezados, Estou iniciando em Macros no Calc e gravei uma Macro que copia o conteúdo de um intervalo de células de uma planilha para outra (no mesmo arquivo). Só consigo executar uma única vez com sucesso, nas demais, a macro sempre cola o primeiro intervalo de células que copiei. É como se nas demais execuções ela só colasse sem fazer o copiar. Não sei muito bem a relação, mas se gravo uma macro para fazer a mesma coisa, porém colando na mesma planilha, dá certo.

Desde já agradeço a todos.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

0

respondidas 2017-10-18 05:52:38 +0200

updated 2017-10-18 05:53:22 +0200

Ola @Luis Rangel, siga este procedimento:

  1. Nomeie a área a ser copiada, por exemplo "areacopiar"
  2. Nomeie a primeira célula do local onde colar, por exemplo "localcolar"
  3. Ligue o gravador de macro, e execute a sequencia:
  4. Vai para a área a ser copiada
  5. Ctrl+C , para copiar a área
  6. Ir para o local a colar
  7. Ctrl+V, para colar
  8. Salvar a macro.

segue abaixo macro gravada com este procedimento:

sub CopiaCola
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "areacopiar" 'area a copiar.
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"
args3(0).Value = "localcolar" 'primeira célula da area a ser colada.
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub
editar assinalar como ofensivo Excluir Link mais

Comentários

Prezado Gilberto, boa tarde!

Agradeço pela colaboração, mas ainda continua o problema. Criei a macro conforme a suas orientações, sendo que com uma diferença, eu uso o colar especial, para organizar os dados colados na planilha Dados. E agora nem colando na mesma planilha dá certo.

Seria um bug na versão, uso a 5.4.0.3 (x64).

Caso tenha uma nova sugestão, favor postar.

Obrigado.

imagem do gravatar de Luis RangelLuis Rangel ( 2017-10-18 23:37:21 +0200 )editar

Ola @Luis Rangel, é possível disponibilizar este arquivo, suba para uma "nuvem" e passe o link. (Uso Win7 + LibO 5.3.6.1).

--

Obs. a serie 5.4.xxxx ainda não é estável.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-10-19 00:31:38 +0200 )editar

Olá Gilberto, instalei a versão 5.3.6.1, alguns erros da versão 5.4 foram resolvidos, mas com relação a macro ainda não deu certo. Como preciso fazer outras coisas mais urgentes, vou deixar para um outro momento. Novamente agradeço pela ajuda. Em breve estarei postando novos testes e espero poder contar com a sua ajuda e de quem mais puder.

Forte abraços a todos.

imagem do gravatar de Luis RangelLuis Rangel ( 2017-10-19 02:59:52 +0200 )editar

Sem problema, em meu perfil tem o contato direto.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-10-19 16:27:43 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-10-18 01:06:40 +0200

Lidas: 157 vezes

Última atualização: Oct 18 '17