CTRL+V  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

CTRL+V

Mensagempor cosme » Sex Ago 10, 2018 2:05 pm

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.
Código: Selecionar todos
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
Editado pela última vez por Patropi em Sex Ago 10, 2018 2:41 pm, em um total de 1 vez.
Razão: Códigos VBA devem ser postados utilizando-se a Tag Code
cosme
Membro
Membro
 
Mensagens: 18
Registrado em: Qui Dez 01, 2016 1:37 pm
Has thanked: 9 times
Have thanks: 1 time

{ SO_SELECT }

Re: CTRL+V

Mensagempor wagner » Sex Ago 10, 2018 2:55 pm

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:
Código: Selecionar todos
    SendKeys "^v", True


Se for para copiar com VBA, use:
Código: Selecionar todos
'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")
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
cosme (Sex Ago 10, 2018 3:50 pm)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4300
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1861 times

Re: CTRL+V

Mensagempor cosme » Sex Ago 10, 2018 3:50 pm

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

Código: Selecionar todos
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
Editado pela última vez por wagner em Sex Ago 10, 2018 4:06 pm, em um total de 1 vez.
Razão: Códigos VBA devem ser inseridos com a TAG CODE existente no início da caixa de mensagens.
cosme
Membro
Membro
 
Mensagens: 18
Registrado em: Qui Dez 01, 2016 1:37 pm
Has thanked: 9 times
Have thanks: 1 time

Re: CTRL+V

Mensagempor wagner » Sex Ago 10, 2018 4:05 pm

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).
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
cosme (Seg Ago 13, 2018 11:50 am)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4300
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1861 times

Re: CTRL+V

Mensagempor cosme » Seg Ago 13, 2018 11:50 am

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.

Código: Selecionar todos
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
cosme
Membro
Membro
 
Mensagens: 18
Registrado em: Qui Dez 01, 2016 1:37 pm
Has thanked: 9 times
Have thanks: 1 time

Re: CTRL+V

Mensagempor wagner » Seg Ago 13, 2018 11:58 am

Bom dia!

Vamos supor que a coluna A da sua Aba Controle está preenchida (contém dados). Você pode fazer assim:
Código: Selecionar todos
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
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
cosme (Seg Ago 13, 2018 1:26 pm)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4300
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1861 times

Re: CTRL+V

Mensagempor cosme » Seg Ago 13, 2018 1:41 pm

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?

Código: Selecionar todos
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
cosme
Membro
Membro
 
Mensagens: 18
Registrado em: Qui Dez 01, 2016 1:37 pm
Has thanked: 9 times
Have thanks: 1 time

Re: CTRL+V

Mensagempor wagner » Seg Ago 13, 2018 2:10 pm

Qual o erro? Anexe o arquivo.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4300
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1861 times

Re: CTRL+V

Mensagempor cosme » Seg Ago 13, 2018 2:42 pm

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
Código: Selecionar todos
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.
cosme
Membro
Membro
 
Mensagens: 18
Registrado em: Qui Dez 01, 2016 1:37 pm
Has thanked: 9 times
Have thanks: 1 time

Re: CTRL+V  [Resolvido]

Mensagempor wagner » Seg Ago 13, 2018 2:49 pm

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:
Código: Selecionar todos
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:
Código: Selecionar todos
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
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4300
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1861 times

Próximo

Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes