Botão para copiar um valor e colá-lo em determinada célula fixa

Boa tarde. Estou tentando criar uma macro para fazer um botão que copie qualquer célula selecionada da planilha e cole numa célula fixa qualquer. Obrigado pela atenção.
Exemplo: quando eu clicar no botão, e a célula selecionada for a A1, a célula B1 fica com o valor da A1. Clicando no botão com a célula A2 selecionada, a célula B1 fica com o valor da A2.

No excel ela é assim:

Sub Macro1()

Selection.Copy
Cells(2, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

End Sub

Feito pelo gravador de macro, neste exemplo, nomiei o local de colagem como “copiar_aqui”.

sub Copiar_la
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "copiar_aqui"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub

Digite em qualquer célula, e selecione-a.

E acione no menu [ Copiar ] a macro Copiar_la.

Arquivo teste. <===

1 Like

Nossa, muito bom hein. Eu queria colocar essa macro num retângulo dentro da planilha. E onde está a célula B2 nesse código para eu poder escolher qualquer outra célula?

@thiago_thigf, na planilha a célula B2 esta nomeada “copiar_aqui”, desta maneira posso estar em qualquer aba que a copia será nesta célula.

Por exemplo na macro esta assim ==> args2(0).Value = “copiar_aqui”

Poderia ser assim ==> args2(0).Value = “Planilha1.B2”

Porém se for desta maneira ==> args2(0).Value = “B2”, e acionar a Macro em aba diferente, será colada na aba onde acionou.

Coloque o acionamento em um Botão, mas no Menu e mais pratico.

Funcionou perfeitamente! Muito obrigado pela ajuda!