Notifications
Clear all

Botão com VBA ou Macro para "copiar + colar especial"

7 Posts
3 Usuários
0 Reactions
2,742 Visualizações
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Bom dia!

Pessoal, eu não manjo muito de VBA e nem de Macros, mas acho que o que eu quero fazer seja simples, porém não encontrei nenhum tutorial de como fazer.

No anexo você vão ver uma planilha que traz resultados de uma simulação de aposentadoria.
Ou seja, eu desenvolvi um sisteminha em excel que simula o valor de uma aposentadoria, semelhantemente ao site da previdência.
(porém o site da previdência não salva, e no excel eu consigo salvar as informações)

A questão é que numa segunda coluna eu copio e colo somente os valores, através do "colar especial", desta forma eles ficam fixados sem serem vínculos de formulas.
E então faço testes com as datas, que alteram os valores da primeira coluna.
De forma que eu possa ficar comparando aquilo que resultou na primeira coluna com o que eu fixei na segunda coluna.

Eu gostaria de automatizar esse "copiar + colar especial" através de um botãozinho com Macro ou VBA.

Alguém poderia me ensinar a fazer, ou fazer por mim para que eu estude o mecanismo?


Desde já, muito obrigado.

 
Postado : 18/11/2013 11:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O método mais rápido para fazer é utilizando o gravador de macro.

 
Postado : 18/11/2013 11:51 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Beleza, utilizei "gravar macro" como palavras chave para buscar como fazer e encontrei uma explicação bem simples.

O que você fez funcionou perfeitamente, mas no arquivo original eu acabei gravando uma.

Muito obrigado!

 
Postado : 18/11/2013 2:03 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

BOM DIA!

Pessoal, para não abrir novo tópico, reutilizei este, pois é uma continuação do desenvolvimento.
Coma ajuda do amigo Reinaldo, eu aprendi a utilizar o "gravar macro", e criei o botão que eu precisava para copiar > colar especial > valores...

Porém este botão estava em uma planilha, copiando dela para ela mesma.

O código dele é o seguinte:

Sub Fixar()
'
' Fixar Macro
' Fixa os resultados.
'
    Range("C14:C24").Select
    Selection.Copy
    Range("G14").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G14").Select
    Application.CutCopyMode = False
End Sub

Se eu quiser por este botão numa planilha chamada "informações", e quiser que ele copie e cole estes mesmo intervalos lá na planilha chama "Comparativo", como faz?

desde já, muito obrigado!

 
Postado : 19/11/2013 7:08 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Bom dia, Pedro,

Nesse caso, como vc está selecionando as células, bastaria vc selecionar, antes do range, também a planilha (entendo que vc esteja chamando de planilha as "abas" de um mesmo arquivo).

Assim, onde está o range da cópia:

Range("C14:C24").Select

Ficaria assim:

Sheets("informações").Activate
Range("C14:C24").Select

E onde ele vai colar, ficaria assim:

Sheets("comparativo").Activate
Range("G14").Select

 
Postado : 19/11/2013 7:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Com o gravador de macro você também efetuar essa operação.
Complementando a informação do colega GT, para poder "voltar" a planilha original (se quiser)

Sub Fixar_outra()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Range("C14:C24").Select
    Selection.Copy
Sheets("Comparativo").Select
Range("G14").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Range("G14").Select
    Application.CutCopyMode = False
ws.Select
    Range("C4").Select
End Sub
 
Postado : 19/11/2013 7:34 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Beleza, deu certo.
Eu não tinha pensado nisso ainda.
Novamente, fiz com o gravador de macros, to domando o bicho ainda.

Obrigado!

 
Postado : 19/11/2013 11:53 am