Pergunte aqui
1

Limpar área transferência

perguntadas 2019-05-22 14:17:45 +0200

imagem do gravatar de Marcelo Caldas

updated 2019-06-05 18:30:18 +0200

Gostaria de saber como limpar a área de transferencia ao copiar celulas.

Tentei usar o Application.CutCopyMode = False mas não deu certo.

Obrigado

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

2 Respostas

1

respondidas 2019-05-22 17:03:45 +0200

imagem do gravatar de Levi

updated 2019-05-22 17:04:40 +0200

Acredito que a área de transferência seja parte do sistema operacional em uso. Pode até existir um comando no LibreOffice que faça a limpeza da mesma, mas até agora, ninguém sabe dizê-lo. No Windows, se não me engano, existe um ícone para isso; no Ubuntu, sistema que uso, o Cairo-Dock pode fazer a limpeza da área de transferência. Basta clicar em local da barra do Cairo-Dock, depois vai em configurar e escolha a aba Complementos. Role a tela até encontrar Histórico da área de transferência. Marque a caixa e ele aparecerá na barra do Cairo-Dock. Depois dê um clique com o botão direito do mouse sobre o ícone de Histórico de área de transferência na barra do Cairo-Dock e selecione Limpar histórico da área de transferência.

editar assinalar como ofensivo Excluir Link mais

Comentários

1

Se for um comando do sistema operacional, pode tentar executar dentro da função Shell descrita em https://help.libreoffice.org/6.2/pt-B...

imagem do gravatar de OlivierOlivier ( 2019-06-08 16:01:00 +0200 )editar
0

respondidas 2019-06-03 15:51:54 +0200

imagem do gravatar de Marcelo Caldas

Achei que tinha um comando pra fazer isso. mas ta certo. so mandar copiar uma celula vazia que me resolve.

Acho que esse comando que eu coloquei é do VBA.

Obrigado

editar assinalar como ofensivo Excluir Link mais

Comentários

Não resolve. Ao copiar uma célula vazia, o Calc entende que o novo conteúdo copiado tem valor "em branco", o que resulta em consumo de memória do mesmo jeito. Não sei se seu desejo era sobre uso de memória. No entanto, como escrito acima, o Windows possui uma função para limpar a área de transferência e os sistemas Linux apresentam também uma solução. Geralmente, você tem que manipular a API do sistema através de alguma linguagem de programação ou Script, como é o caso do VBA, para fazer essa tarefa.

imagem do gravatar de LeviLevi ( 2019-06-03 20:21:56 +0200 )editar

Não é a melhor solução mesmo. Mas no meu caso, no ultimo comando da macro ela copia uma quantidade grande de dados. Quero evitar que alguém inadvertidamente cole isso em outro lugar depois de executar a macro. daí é menos mal.

imagem do gravatar de Marcelo CaldasMarcelo Caldas ( 2019-06-05 12:15:47 +0200 )editar

Para o Excel seria algo: (*referências à publicação foram conscientemente suprimidas, devido tratar-se de outro produto, mas foram postadas por alguém intitulado HTH)

Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EmptyClipboard Lib "user32" () As Long
Public Declare Function CloseClipboard Lib "user32" () As Long

Public Function ClearClipboard()
    OpenClipboard (0&)
    EmptyClipboard
    CloseClipboard
End Function

Sub ccc()
    Call ClearClipboard
End Sub

Porém, o script acima se utiliza da sintaxe da M...Soft, se me lembrar e tiver algum tempo livre, talvez dê uma olhada para ver quais as linhas para o LibreOffice. Mas como te escrevi, precisa interferir diretamente no respectivo módulo da API do sistema em uso.

imagem do gravatar de LeviLevi ( 2019-06-05 17:52:18 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-05-22 14:17:45 +0200

Lidas: 77 vezes

Última atualização: Jun 05