Notifications
Clear all

CTRL+V

11 Posts
2 Usuários
0 Reactions
2,061 Visualizações
(@cosme)
Posts: 0
New Member
Topic starter
 

Pessoal boa tarde!

estou fazendo uma macro, mas precisava que em determinada etapa ela colasse os dados que foram copiados com comando CTRL de outro local.

Resumindo; gostaria de saber se existe um código que executa o CTRL + V dentro de uma planilha, segue a macro que estou fazendo, o próximo código seria o do CRTL+V, já procurei mas não encontrei na internet.

Sub AJUSTAR()
'
' AJUSTAR Macro

    Sheets("Formulário").Select
    Range("A1").Select
    For i = ActiveSheet.Shapes.Count To 1 Step -1
    ActiveSheet.Shapes(i).Delete
    Next i
    Cells.Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
 
Postado : 10/08/2018 11:05 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

cosme,

Boa tarde!

Não sei entendi corretamente... você quer que em dado momento a macro simule um CTRL + V ou que que, através de código VBA algo seja copiado?

Se for apenas para simular o CTRL + V você pode usar o seguinte código:

    SendKeys "^v", True

Se for para copiar com VBA, use:

'Copia o valor de A1 da Plan1 para B3 da Plan2
Sheets("Plan2").Range("B3").Value = Sheets("Plan1").Range("A1").Value
'OU
Sheets("Plan1").Range("A1").Copy Destination:= Sheets("Plan2").Range("B3")
 
Postado : 10/08/2018 11:55 am
(@cosme)
Posts: 0
New Member
Topic starter
 

Era apenas simular o CRTL + V
Mas não deu certo, ficou tudo cinza a planilha que eu queria colar, o código ficou assim

Sub AJUSTAR()
'
' AJUSTAR Macro

'
    Sheets("Formulário").Select
    Range("A1").Select
    For i = ActiveSheet.Shapes.Count To 1 Step -1
    ActiveSheet.Shapes(i).Delete
    Next i
    Cells.Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    SendKeys "^v"

End Sub
 
Postado : 10/08/2018 12:50 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

cosme,

Anexe seu arquivo.

Por gentileza, ao utilizar código VBA utilize a ferramenta CODE existente no início da caixa de mensagens (quinto botão da esquerda para a direita).

 
Postado : 10/08/2018 1:05 pm
(@cosme)
Posts: 0
New Member
Topic starter
 

Wagner,

eu consegui resolver em parte esse problema, porém não consigo anexar a planilha aqui por que por causa do tamanho mesmo compactando.

Agradeço a ajuda, se possível gostaria de te pedir mais um último auxílio, eu precisava que ao colar o dado na planilha ela colasse na próxima linha em branco, para não colar sempre na linha 817 como está no código abaixo.

Sub Copiar()
'
' Copiar Macro
'

'
    Range("A2:E2").Select
    Selection.Copy
    Sheets("Controle").Select
    Range("C817:G817").Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
 
Postado : 13/08/2018 8:50 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Bom dia!

Vamos supor que a coluna A da sua Aba Controle está preenchida (contém dados). Você pode fazer assim:

Sub Copiar()
Dim UltimaLinha as Long
' Copiar Macro
'

' Armazena a primeirta linha em branco da Aba Controle
UltimaLinha  = Sheets("Controle").Cells(Cells.Rows.Count,1).End(XlUp).Row + 1
    Range("A2:E2").Select
    Selection.Copy
    Sheets("Controle").Select
    Range("C" & UltimaLinha & ":G" & UltimaLinha).Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
 
Postado : 13/08/2018 8:58 am
(@cosme)
Posts: 0
New Member
Topic starter
 

Bom dia!

Tentei usar esse código, mas deu erro na 6ª linha (Range("C" & UltimaLinha & ":G" & UltimaLinha).Select
ActiveSheet.Paste), fiz algo de errado?

Sub Copiar()
'
' Copiar Macro
'

'
    Sheets("Dados").Select
    Range("A2:E2").Select
    Selection.Copy
    Sheets("Controle").Select
    Sheets("Controle").Cells(Cells.Rows.Count, 1).End(xlUp).Row 1
    Range("C" & UltimaLinha & ":G" & UltimaLinha).Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub
 
Postado : 13/08/2018 10:41 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Qual o erro? Anexe o arquivo.

 
Postado : 13/08/2018 11:10 am
(@cosme)
Posts: 0
New Member
Topic starter
 

Deu erro '438' o objeto não aceita esta propriedade ou método.

Eu não consigo enviar por que sempre dá erro que o arquivo é muito grande mesmo tendo somente 120 kib, existe algum compactador que diminua bastante o tamanho? Pois o winrar e o 7z não compactam o suficiente.

Eu percebi que no código

Sheets("Controle").Cells(Cells.Rows.Count, 1).End(xlUp).Row 1

seleciona todas as células, precisava de um código que selecionasse a próxima em branco para que não colasse sempre em cima da mesma linha.

 
Postado : 13/08/2018 11:42 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

cosme,

Você não copiou o código conforme eu enviei (agora que percebi, diante do relato do erro).

O código que você postou está assim:

Sub Copiar()
'
' Copiar Macro
'

'
    Sheets("Dados").Select
    Range("A2:E2").Select
    Selection.Copy
    Sheets("Controle").Select
    Sheets("Controle").Cells(Cells.Rows.Count, 1).End(xlUp).Row 1
    Range("C" & UltimaLinha & ":G" & UltimaLinha).Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

E o código correto (que eu coloquei aqui) é esse:

Sub Copiar()
Dim UltimaLinha as Long
' Copiar Macro
'

' Armazena a primeirta linha em branco da Aba Controle
UltimaLinha  = Sheets("Controle").Cells(Cells.Rows.Count,1).End(XlUp).Row + 1
    Range("A2:E2").Select
    Selection.Copy
    Sheets("Controle").Select
    Range("C" & UltimaLinha & ":G" & UltimaLinha).Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
 
Postado : 13/08/2018 11:49 am
(@cosme)
Posts: 0
New Member
Topic starter
 

Obrigado!

 
Postado : 13/08/2018 12:04 pm