Marcelo G Pr...
Geek
Registrado
1K Mensagens
227 Curtidas
Pq nao pode selecionar a plan 2??????????????
Se é por conta da tela ficar piscando
use no inicio do codigo
application.screenupdating = false no incio do codigo
e
application.screenupdating = true no fim do codigo
para o usuario nao faz nenhuma diferença.
E totalmente invisivel ao olho
Seu codigo esta com erro nesta parte
Set wsOrigem = Worksheet("Plan1")
Set wsDestino = Worksheet("Plan2")
Use assim
Set wsOrigem = Worksheets("Plan1")
Set wsDestino = Worksheets("Plan2")
Esse comando Selection.PasteSpecial Paste:=xlPasteValues
cola especial valores
Marcelo Prudencio
Microsoft Excel Brasil no Facebook
"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Intruder18
Novo Membro
Registrado
26 Mensagens
2 Curtidas
Agradeço a ajuda.
A parte do erro provavelmente eu digitei errado aqui no fórum.
Também usei outros exemplos com o colar valores.
O comando para ficar invisível a seleção da planilha ajuda muito.
Porém ainda preciso de algum comando que exporte o valor para a outra planilha sem a ativar a segunda planilha.
A provação é muito extensa, são muitas linhas de código e essa seleção faz com que a execução do código fique muito lento.
Walhart
Super Participante
Registrado
185 Mensagens
65 Curtidas
Sub Copiar()
Dim wsOrigem As Worksheet
Dim wsDestino As Worksheet
Set wsOrigem = Worksheet("Plan1")
Set wsDestino = Worksheet("Plan2")
wsDestino.range("A1").value = wsOrigem.range("A1").value
End Sub
Marcelo G Pr...
Geek
Registrado
1K Mensagens
227 Curtidas
Cara o que vc chama de muito grande?????????
2000 linhas!!
Isso o Excel processa em segundos tenho algumas plans que trabalham de forma semelhante, e processa em segundos, que trabalham aproximadamente com essa quantidade de linhas que falei.
Marcelo Prudencio
Microsoft Excel Brasil no Facebook
"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Walhart
Super Participante
Registrado
185 Mensagens
65 Curtidas
Excel começa a ficar lento acima de 500.000 linhas....(depende do número de colunas e quantidade de colunas com fórmulas)
Última base grande que eu trabalhei tinha 970.000 linhas e só umas 20 colunas sem fórmula. Excel tava aguentando bem até.
Intruder18
Novo Membro
Registrado
26 Mensagens
2 Curtidas
Não são as células que são grandes. Tenho vários códigos via em uma mesma planilha, uma macro chamando outra. É isso que deixa lento a execução do código.
Marcelo G Pr...
Geek
Registrado
1K Mensagens
227 Curtidas
Nao da pra reduzir a quantidade de codigo ao inves de ter um monte de call isso, call aquilo, pegar essas rotinas e colocar tudo em uma so
As vezes na hora de escrever é muito bom fazer assim pq isso facilita para quem esta programando mas o ideial é juntar esses codigos.
Marcelo Prudencio
Microsoft Excel Brasil no Facebook
"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Intruder18
Novo Membro
Registrado
26 Mensagens
2 Curtidas
Claro, concordo com você. E já estou deixando os códigos mais limpos e organizados. Porém o que me deixa louco, são as mudanças de sheets. A execução fica muito mais lenta. Gostaria de fazer tudo na sheet CAPA, sem precisar navegar pelas outras. Essa é a função da macro.
Marcelo G Pr...
Geek
Registrado
1K Mensagens
227 Curtidas
Intruder se usar o comando de desabilitar a função de tela que postei no inicio simplesmente o pisca pisca, que deixa o codigo lento, (ja testei, a diferença é enorme, o mesmo codigo com a atualização de tela ligada demorou uns 15 seg para executar, com ela desligada caiu para 2 segundos), experimente o mesmo codigo das duas maneiras e veja a diferença.
Acabei de testar uma planilha pequena aqui com 1303 linhas com a atualização de tela demorou proximo a 30 seg sem a atualizaçao de tela o mesmo codigo rodou em 3 seg ou seja 1/10 do tempo.
Se quiser testar seu codigo faz o seguinte (faço isso sempre para testar a velocidade dos que escrevo)
no inicio do codigo
range("A1").value=time
No final do codigo
range("B1").value= time
E obvio que a diferença dos dois horarios é o tempo de execução da macro, para ter um calculo mais preciso desabilite qualquer ação que dependa do usuario como msgbox por exemplo
Marcelo Prudencio
Microsoft Excel Brasil no Facebook
"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Intruder18
Novo Membro
Registrado
26 Mensagens
2 Curtidas
Obrigado Marcelo, não tinha visto sua postagem com o código. Funcionou perfeitamente o comando. Tentei ver outra forma de fazer isso no código para deixa a escrita menor. Isso para fins educativos.