Notifications
Clear all

Falha no comando ScreenUpdating?

12 Posts
3 Usuários
0 Reactions
1,597 Visualizações
(@clone83)
Posts: 0
New Member
Topic starter
 

Bom dia.

Estou trabalhando numa macro para uma planilha do meu emprego e mesmo usando o comando "ScreenUpdating = false" continua dando load em determinado momento.

Seria possivel que este comando tenha alguma falha ou possa nao ser eficaz dependendo do codigo?

 
Postado : 02/05/2018 7:02 am
(@xlarruda)
Posts: 0
New Member
 

no seu código possui alguma condicional?

if . .. .

Poderia ver seu código?

 
Postado : 02/05/2018 7:06 am
(@clone83)
Posts: 0
New Member
Topic starter
 

no seu código possui alguma condicional?

if . .. .

Poderia ver seu código?

Arruda. Segue a parte na qual esta dando o load.

w.Select
Worksheets("AVC").Range("e2:e1048576").Copy Destination:=w2.Range("g2")

w.Select
Worksheets("AVC").Range("f2:f1048576").Copy Destination:=w2.Range("i2")

 
Postado : 02/05/2018 7:31 am
(@jnexcel)
Posts: 0
New Member
 

olá, bom dia tudo bem com você?

tente diminuir o seu intervalo de células.

exemplo: coloque até f8756.

 
Postado : 02/05/2018 8:40 am
(@clone83)
Posts: 0
New Member
Topic starter
 

olá, bom dia tudo bem com você?

tente diminuir o seu intervalo de células.

exemplo: coloque até f8756.

Boa tarde.

Mesmo reduzindo o numero de celulas, continua lento.

Demora uns 9 segundos pelo menos pra macro copiar o valor de uma aba para outra.

 
Postado : 02/05/2018 11:26 am
(@xlarruda)
Posts: 0
New Member
 

pode ser muitas coisas.

Uma delas por exemplo pode ser alguma formatação condicional conflitante na sua planilha.
Ou Formatações de células sem necessidade..

De qualquer forma, poste seu código completo, ou melhor ainda, poste sua planilha para nós mesmos tertarmos.

Todavia tente:

Sub Copiar()
Dim ul As Long
ul = Sheets("AVC").Range("E" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
w.Range("G2:G" & ul).Value = Sheets("AVC").Range("E2:E" & ul).Value
w.Range("I2:I" & ul).Value = Sheets("AVC").Range("F2:F" & ul).Value
Application.ScreenUpdating = True
End Sub
 
Postado : 02/05/2018 1:07 pm
(@clone83)
Posts: 0
New Member
Topic starter
 

pode ser muitas coisas.

Uma delas por exemplo pode ser alguma formatação condicional conflitante na sua planilha.
Ou Formatações de células sem necessidade..

De qualquer forma, poste seu código completo, ou melhor ainda, poste sua planilha para nós mesmos tertarmos.

Todavia tente:

Sub Copiar()
Dim ul As Long
ul = Sheets("AVC").Range("E" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
w.Range("G2:G" & ul).Value = Sheets("AVC").Range("E2:E" & ul).Value
w.Range("I2:I" & ul).Value = Sheets("AVC").Range("F2:F" & ul).Value
Application.ScreenUpdating = True
End Sub

Nao é possivel add a planilha mesmo zipada, devido ao tamanho do arquivo.

 
Postado : 02/05/2018 1:27 pm
(@xlarruda)
Posts: 0
New Member
 

Posta no GoogleDrive e compartilha o link...

 
Postado : 02/05/2018 1:46 pm
(@clone83)
Posts: 0
New Member
Topic starter
 

Posta no GoogleDrive e compartilha o link...

Segue o link.

https://drive.google.com/file/d/1L2DXqP ... sp=sharing

 
Postado : 03/05/2018 7:55 am
(@xlarruda)
Posts: 0
New Member
 

Amigo aqui funcionou perfeitamente.

Mas, o que exatamente seria "Load" para você?

Se com "Load" você quer dizer aquele "circulo" rodando enquanto a macro é executada, isso é normal.

O que o screenupdating = false faz é apenas desligar as atualizações de tela durante a macro. mas esse circulo não some mesmo. Ele ficará durante toda a execução da macro.

 
Postado : 03/05/2018 8:03 am
(@clone83)
Posts: 0
New Member
Topic starter
 

Amigo aqui funcionou perfeitamente.

Mas, o que exatamente seria "Load" para você?

Se com "Load" você quer dizer aquele "circulo" rodando enquanto a macro é executada, isso é normal.

O que o screenupdating = false faz é apenas desligar as atualizações de tela durante a macro. mas esse circulo não some mesmo. Ele ficará durante toda a execução da macro.

Isso mesmo.

A macro funciona normalmente, porem demora para ser executada. Tenho visto algumas macros serem executadas em bem menos tempo com o mesmo numero de dados e codigos ate maiores. Ai me faz pensar que meu codigo possa ter algo que atrase a execucao da macro.

 
Postado : 03/05/2018 8:56 am
(@clone83)
Posts: 0
New Member
Topic starter
 

Amigo aqui funcionou perfeitamente.

Mas, o que exatamente seria "Load" para você?

Se com "Load" você quer dizer aquele "circulo" rodando enquanto a macro é executada, isso é normal.

O que o screenupdating = false faz é apenas desligar as atualizações de tela durante a macro. mas esse circulo não some mesmo. Ele ficará durante toda a execução da macro.

Isso mesmo.

A macro funciona normalmente, porem demora para ser executada. Tenho visto algumas macros serem executadas em bem menos tempo com o mesmo numero de dados e codigos ate maiores. Ai me faz pensar que meu codigo possa ter algo que atrase a execucao da macro.

A demora é somente na hora de copiar e colar a receita, ja o CNPJ copia e cola quase que instantaneamente. Ate tentei mudar o formato das celulas da coluna receita pra ver se resolvia, mas deu em nada.

 
Postado : 03/05/2018 9:01 am