Copiar e colar células sem usar a área de transferência

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

Copiar e colar células sem usar a área de transferência

Mensagempor RAMZERO » Sex Mar 15, 2019 3:46 pm

Olá pessoal

Mais uma ajuda, por favor

Uso o seguinte código:

Código: Selecionar todos

Dim r As Range

  [A1:H10].Copy [A21] 'copia o conteúdo de A1 até H10 e cola em A21

   For Each r In Range("D2")
    r.Font.Color = r.DisplayFormat.Font.Color 'Negritos
    r.Interior.Color = r.DisplayFormat.Interior.Color 'Cor do interior da célula
    r.FormatConditions.Delete 'Apaga formatação condicional
   Next r



Funciona perfeitamente para o que uso, porém minha área de transferência fica sempre ocupada de modo que se vou copiar e colar alguma coisa, o que vem são os dados da planilha, por estar usando o comando copy/paste

Existe alguma forma do código me entregar o mesmo resultado sem usar copiar/colar, ou seja, sem utilizar a área de transferência?

Como por exemplo usando:

Código: Selecionar todos

Range("A21:H30").Value = Range("A1:H10").Value
Range("A21:H30").Font.Color = Range("A1:H10").DisplayFormat.Font.Color
Range("A21:H30").Interior.Color = Range("A1:H10").DisplayFormat.Interior.Color
Range("D2").FormatConditions.Delete

OU

Dim r As Range

   For Each r In Range("A1:H10")
    r.Font.Color = r.DisplayFormat.Font.Color
    r.Interior.Color = r.DisplayFormat.Interior.Color
    r.FormatConditions.Delete
   Next r



Obrigado
RAMZERO
Membro
Membro
 
Mensagens: 154
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 82 times
Have thanks: 3 times

{ SO_SELECT }

Re: Copiar e colar células sem usar a área de transferência

Mensagempor wagner » Sex Mar 15, 2019 9:48 pm

RAMZERO,

Boa noite!

Pode perfeitamente ser:
Código: Selecionar todos
Range("A21:H30").Value = Range("A1:H10").Value
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: 5247
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 93 times
Have thanks: 2243 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor RAMZERO » Dom Mar 17, 2019 7:41 pm

Boa noite wagner

Já tentei fazer assim, mas ele só leva os valores, sendo que as células contém formatações de fontes diferentes e colorações de preenchimento também

Só assim não dá certo

Obrigado
RAMZERO
Membro
Membro
 
Mensagens: 154
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 82 times
Have thanks: 3 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor wagner » Dom Mar 17, 2019 8:24 pm

Certo. Todas as formatações devem ser feitas também via código. Você pode fazer isso simplesmente gravando o código no gravador de macros, formatando da forma que quer.
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: 5247
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 93 times
Have thanks: 2243 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor RAMZERO » Seg Mar 18, 2019 8:35 am

Fala wagner

Quanto as formatações condicionais, realmente deu certo, ficou um código longo, mas vou tentar enxugar alguma coisa aqui

Mas quanto ao copiar/colar?

O que eu preciso é mover um bloco de células pra baixo sem usar a área de transferência

Tentei aqui o

Código: Selecionar todos
Range("A2:H2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove


Mas se usar isso perco o vínculo para uso de outras células

Por isso gostaria de fazer usando Range ou Cells, mas não consigo

Obrigado
RAMZERO
Membro
Membro
 
Mensagens: 154
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 82 times
Have thanks: 3 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor wagner » Seg Mar 18, 2019 10:08 am

Mas... quando copia assim não dá certo?
Código: Selecionar todos
Range("A21:H30").Value = Range("A1:H10").Value
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: 5247
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 93 times
Have thanks: 2243 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor RAMZERO » Seg Mar 18, 2019 10:30 am

Não dá certo wagner

Desse jeito só vai os valore, mas as células tem formatações variadas, como cor de fundo, fonte negrito, etc...

Em resumo eu preciso disso aqui:

Código: Selecionar todos
Sub CopiarColar()

    Range("A2").Select
    Selection.Copy
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
       
End Sub


Segue a planilha exemplo com o código acima

Preciso que faça a mesma coisa, só que sem usar a Área de Transferência (Copiar/Colar)

Obrigado
Você não está autorizado a ver ou baixar esse anexo.
RAMZERO
Membro
Membro
 
Mensagens: 154
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 82 times
Have thanks: 3 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor wagner » Seg Mar 18, 2019 10:45 am

Ok.

Veja se pode ser assim.
Você não está autorizado a ver ou baixar esse anexo.
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: 5247
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 93 times
Have thanks: 2243 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor RAMZERO » Seg Mar 18, 2019 8:57 pm

Também não wagner, porque as formatações são variadas

Segue uma outra planilha exemplo de como é mais ou menos

Mas isso é apenas uma amostra

Obrigado
Você não está autorizado a ver ou baixar esse anexo.
RAMZERO
Membro
Membro
 
Mensagens: 154
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 82 times
Have thanks: 3 times

Re: Copiar e colar células sem usar a área de transferência

Mensagempor Reinaldo » Seg Mar 18, 2019 9:48 pm

Experimente "limpar" a area de transferencia: adicione a rotina abaixo no inicio de seu modulo
Fonte: https://social.msdn.microsoft.com/Forums/pt-BR/1f3289f6-9687-4ea3-812f-5a0d7ac3b16d/dados-na-rea-de-transferncia?forum=accesspt
Código: Selecionar todos
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Public Sub JustEmptyClipboard()
OpenClipboard (0)
EmptyClipboard
CloseClipboard
End Sub


em sua rotina apos colar os dados chame a rotina acima

Código: Selecionar todos
Dim r As Range

  [A1:H10].Copy [A21] 'copia o conteúdo de A1 até H10 e cola em A21
  call JustEmptyClipboard 'chama rotina para limpar a area de transferencia
   For Each r In Range("D2")
    r.Font.Color = r.DisplayFormat.Font.Color 'Negritos
    r.Interior.Color = r.DisplayFormat.Interior.Color 'Cor do interior da célula
    r.FormatConditions.Delete 'Apaga formatação condicional
   Next r
Editado pela última vez por wagner em Ter Mar 19, 2019 7:10 am, em um total de 2 vezes.
Razão: Código VBA deve ser inserido com a utilização da CODE (quinto botão da esquerda para a direita)
Reinaldo
Gostou da resposta? Clique no ícone "Positivo" da mensagem!(ao lado de citar)

For this post the author Reinaldo thanked:
wagner (Ter Mar 19, 2019 7:08 am)
Avatar do usuário
Reinaldo
Expert
Expert
 
Mensagens: 4326
Registrado em: Sáb Dez 19, 2009 9:59 am
Localização: Garça - SP / SCS - SP
Has thanked: 194 times
Have thanks: 1992 times

Próximo

Voltar para VBA & Macros

Quem está online

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