Ir ao conteúdo
  • Cadastre-se
edcronos

RESOLVIDO Métodos de Selecionar Copiar e Colar no excel com macro.

Recommended Posts

Sei que é assunto básico em vba, mas muitos que procuram o Fórum são iniciantes iguais a mim,

e usam muito seleciona aqui, copia e cola ali, isso se não for a mais usada, e muitas vezes usando o "gravador de macro".

 

Sei que cada caso é um caso, alguns querem copiar só formatação, outros apenas formulas, ..., seja usando variaveis, strings, loops, buscas especificas, seleções inteiras, valores dentro de areas selecionadas...

Mas em algum momento vão ter que copiar e colar.

Então as dicas dos mais experientes seriam muito bem recebidas por nós principiantes.

 

osvaldomp, falou para evitar o uso de "Select" e "Activate",

Mas onde tem muita formatação condicional tem algo no comando "Select" "ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, IconFileName:=False" que torna a operação mais rápida que usando apenas range=range.value,

se tiver que usar cells em vez de range, sou obrigado a fazer a operação onde não tem formatação condicional, porque leva uma eternidade fazer em áreas com muita formatação condicional
"Resize" bagunça a formatação condicional, mas não mexe na formatação básica.

 

Talvez eu tenha me equivocado nos testes, e talvez seja o único que use toneladas de formatação condicional na planilha, por isso qualquer equivoco meu me avisem.

 

Já uso "Application.ScreenUpdating = False" e "Application.Calculation = xlCalculationManual", para congelar a tela e tornar a aplicação mais rápida.

bem, não sei de outros métodos então qualquer dica  de como copiar de um lugar e colar em outro de maneira rapida e limpa é bem vinda.

 

Edit:

 

Areas Fixas no fórum com "dicas" de "excel" e "vba"  e "outros", com assuntos básicos como selecionar, contar, linhas colunas, células, formulas, buscas, loops, comparar... e outros

Dentro de varias variantes diferentes, seria bem vindo para os principiantes,

 

Reservado apenas para gente com muita "participação" no fórum "dando respostas", onde os "mestres" como o Osvaldo e outros debateriam seus conhecimentos, descobertas e conceitos a respeito do assunto. E nós iniciantes apenas aprenderíamos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!!

 

Do que você precisa exatamente?

 

Att

A maneira mais rapida de copiar valores de um lugar para o outro que não mexa nas formatações condicionais.

Eu uso muito:

Range(ti & n, Cf & n).Copy

Range("go" & lincd).Select

        ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _

        IconFileName:=False

quando uso:

Range(ti & rngD.Row, Cf & rngD.Row) = Sheets(nomePlan1).Range(ti & rngO.Row, Cf & rngO.Row).Value, fica um pouco mais lento

 

E com "Cells(D_li, d_cI + Dni) = Cells(O_li, O_ci + Oc).Value" se não for em um lugar sem formatação condicional leva uma eternidade, onde não tem formatação é quase instantaneo. então sou obrigado a fazer em uma area sem formatações e então tranferir para onde eu quero

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!!

 

Copia e colar "rápido" vai depender um pouco.

Exemplo....

Sub CopiarZinhoVBA()    Rows(Plan1.Range("A65536").End(xlUp).Row).Copy Plan2.Range("A65536").End(xlUp)(2)End Sub

Eu ainda não entendo o que quer dizer 

 

 

 não mexa nas formatações condicionais.

...... :confused:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!!

 

Copia e colar "rápido" vai depender um pouco.

Exemplo....

Sub CopiarZinhoVBA()    Rows(Plan1.Range("A65536").End(xlUp).Row).Copy Plan2.Range("A65536").End(xlUp)(2)End Sub

Eu ainda não entendo o que quer dizer 

...... :confused:

Tipo, quando tem .Cells(rngD.Row, CData).Offset(0, -1).Resize(, coln).Value = rngO.Offset(0, -1).Resize(, coln).Value

 

Modifica as possições das celulas nas formatações condicionais.

 

Com Range(ti & rngD.Row, Cf & rngD.Row) = Sheets(nomePlan1).Range(ti & rngO.Row, Cf & rngO.Row).Value

Não acontece a mudança

 

e quando sou obrigado a usar Cells()  fica impraticável usar numa área que tem muita formatação condicional, fica MUITO mais lento que com Range().

Repara não, o Osvaldo deve lembrar de mim como "o maniaco da formatação condicional".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sub CopiarZinhoVBA()    Rows(Plan1.Range("A65536").End(xlUp).Row).Copy Plan2.Range("A65536").End(xlUp)(2)End Sub

 

hum tá, ela vai até Plan1 na primeira linha da coluna A com dados copia, e cola na linha 2 da plan2 de forma integral, a linha inteira com formatação e tudo.

 

mas ainda não entendi a extrutura para fazer possiveis alterações, tipo copiar varias linhas,

"ou" copiar somente valores "ou" formulas "ou" somente formatações

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que ninguem mais vai colocar maneiras diferentes de copiar e colar, vou dar o topico por encerrado

 

Vou fazer meus proprios testes "mesmo que limitados pelo pouco conhecimeto e sem nada de experiencia"

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×