- 10 Mar 2021 às 16:56
#62762
Boa tarde, estou com uma dúvida em relação a área de transferência e o VBA. Vou tentar explicar da forma mais detalhada.
Eu criei uma coluna (B2:B5) com formatação condicional que reconhece as palavras “Maçã” e “Laranja”. Ao reconhecer essas palavras, a formatação condicional automaticamente pinta essas células de verde:

Imagem 1 – tabela com formatação condicional.
Então, me surgiu a necessidade de copiar esses dados para outra coluna, e manter as cores que a formatação condicional executa, PORÉM, sem a formatação condicional em si. Ou seja, se nessa nova coluna (E2:E5) eu clicar para “gerenciar as regras” não terá nenhuma regra:

Imagem 2 – duas tabelas, sendo B2:B5 com formatação condicional e E2:E5 sem a formatação condicional, porém, mantendo as cores da tabela B2:B5.
Para conseguir copiar as células da coluna B2:B5 mantendo somente as cores e excluindo a formatação condicional, a única forma que eu encontrei foi copiando os dados da coluna B2:B5; clicando em “Área de transferência” na aba “Página inicial” e colando os dados na célula E2, que cola automaticamente toda a coluna B2:B5:

Imagem 3 – passo a passo para conseguir criar tabela (E2:E5) que mantenha a cor da tabela B2:B5 e tira as regras da formatação condicional.
Tendo realizado esse passo a passo, eu consegui exatamente o que queria: uma tabela idêntica à tabela B2:B5, sem a formatação condicional e conservando as cores da coluna.
Então decidi deixar todo o processo automatizado, gravando uma macro. Para tanto, tudo isso que eu falei foi gravado numa macro onde eu copiei os dados da coluna B2:B5, abri a área de transferência e colei a transferência da tabela na coluna E2:E5.
Quando fui rodar a macro no botão que criei, apareceu esse erro:

Imagem 4: erro da macro.
E o código da macro ficou assim (sendo destacado exatamente o ponto em que a macro falhou):
Range("B2:B5").Select
Selection.Copy
Range("E2").Select
Application.CutCopyMode = False
ActiveSheet.Paste >>>ESSE FOI O PONTO QUE A MACRO FALHOU
Application.CommandBars("Office Clipboard").Visible = False
Range("F3").Select
End Sub
Assim, não estou conseguindo automatizar um processo que manualmente eu consigo fazer. Vocês conseguem me ajudar a automatizar isso?
Ainda, se tiver uma outra forma de copiar a coluna B2:B5 (que está com o formato condicional e as cores marcadas) para a coluna E2:E5 (que não terá as regras do formato condicional porém as cores conservadas) também agradeço a explicação.
Muito obrigado pela atenção!!
Eu criei uma coluna (B2:B5) com formatação condicional que reconhece as palavras “Maçã” e “Laranja”. Ao reconhecer essas palavras, a formatação condicional automaticamente pinta essas células de verde:

Imagem 1 – tabela com formatação condicional.
Então, me surgiu a necessidade de copiar esses dados para outra coluna, e manter as cores que a formatação condicional executa, PORÉM, sem a formatação condicional em si. Ou seja, se nessa nova coluna (E2:E5) eu clicar para “gerenciar as regras” não terá nenhuma regra:

Imagem 2 – duas tabelas, sendo B2:B5 com formatação condicional e E2:E5 sem a formatação condicional, porém, mantendo as cores da tabela B2:B5.
Para conseguir copiar as células da coluna B2:B5 mantendo somente as cores e excluindo a formatação condicional, a única forma que eu encontrei foi copiando os dados da coluna B2:B5; clicando em “Área de transferência” na aba “Página inicial” e colando os dados na célula E2, que cola automaticamente toda a coluna B2:B5:

Imagem 3 – passo a passo para conseguir criar tabela (E2:E5) que mantenha a cor da tabela B2:B5 e tira as regras da formatação condicional.
Tendo realizado esse passo a passo, eu consegui exatamente o que queria: uma tabela idêntica à tabela B2:B5, sem a formatação condicional e conservando as cores da coluna.
Então decidi deixar todo o processo automatizado, gravando uma macro. Para tanto, tudo isso que eu falei foi gravado numa macro onde eu copiei os dados da coluna B2:B5, abri a área de transferência e colei a transferência da tabela na coluna E2:E5.
Quando fui rodar a macro no botão que criei, apareceu esse erro:

Imagem 4: erro da macro.
E o código da macro ficou assim (sendo destacado exatamente o ponto em que a macro falhou):
Range("B2:B5").Select
Selection.Copy
Range("E2").Select
Application.CutCopyMode = False
ActiveSheet.Paste >>>ESSE FOI O PONTO QUE A MACRO FALHOU
Application.CommandBars("Office Clipboard").Visible = False
Range("F3").Select
End Sub
Assim, não estou conseguindo automatizar um processo que manualmente eu consigo fazer. Vocês conseguem me ajudar a automatizar isso?
Ainda, se tiver uma outra forma de copiar a coluna B2:B5 (que está com o formato condicional e as cores marcadas) para a coluna E2:E5 (que não terá as regras do formato condicional porém as cores conservadas) também agradeço a explicação.
Muito obrigado pela atenção!!