Página 1 de 1

Macro para execução de código em determinadas células

Enviado: 25 Mar 2019 às 16:53
por danielp
Galera, criei uma macro para buscar o produto e dizer os processos dele. Na planilha coloquei o atalho CTRL+SHIFT+P para executá-lo, porém eu fiz de forma que ele passe todas as linhas da coluna H, e eu GOSTARIA QUE PASSASSE SOMENTE NAS LINHAS COM VALORES.
Nesse caso seriam as linhas 2, 3, 4, 5, 19, 20 e 27, porém elas podem variar em quantidade e em posição. Qualquer dúvida, só falar que tento explicar melhor! Obrigado, abraço!

Re: Macro para execução de código em determinadas células

Enviado: 25 Mar 2019 às 20:45
por Jimmy
Daniel,

A macro NewRun substitui a PEDIDO e RUN. Roda com o atalho CTRL-SHIFT-O.

Teste e dê retorno.

Jimmy San Juan

Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 07:40
por danielp
Bom dia Jimmy!

Ficou ótima! Mas eu precisaria entendê-la melhor, pois estarei mudando muitas coisas, como aba, número de colunas, linhas... esse que mandei aqui foi só um exemplo. Existe alguma restrição nos dados que posso colocar? Tem como dar uma força?

Editado: Também notei que ao colocar um valor que não é encontrado ele abre o depurador...

Abraço!

Daniel.

Re: Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 09:38
por Jimmy
Piaia,

Segue nova planilha. O erro (entrada no depurador) tá corrigido.
Cópia de Corte macro - Cópia.xlsm
To te mandando umas explicações sobre a planilha.


Jimmy San Juan

Re: Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 10:11
por Jimmy
Segue a primeira parte das explicações.

Re: Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 10:12
por Jimmy
Segue a segunda parte

Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 11:31
por Jimmy
Alterei o problema que estava ocorrendo. Alterei tb um outro problema: você rodava a macro, e dava tudo certo. Depois apagava um dos número da coluna H, mas que já estava com os valores copiados (colinas I:N). Rodava novamente a macro, e ale não apagava os valores de I:N, apesar de não haver dados na H. Agora a macro apaga.

Quando não há número na H, ou quando há número mas não foi encontrado na A, a macro copia os dados de uma linha que está vazia, no caso a última linha da planilha. Copiar vazios é o mesmo que apagar.

Jimmy San Juan

Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 14:20
por danielp
Desculpe a ignorância Jimmy, eu aprendo excel na raça, com fórums e youtube, não tive oportunidade de fazer nenhum curso.
A sua explicação ficou sensacional, mas eu não entendi a parte que fala da aba. Porque eu teria a Plan1 como um database, e executaria o código na Plan2 puxando somente os itens necessários. Quanto ao código, não sei o motivo, mas ele ficou muito pesado... eu clico para executar e fica quase 1min executando se tiver muitos itens.

Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 15:33
por Jimmy
Você está dizendo que a parte da esquerda na verdade seria outra planilha (aba é planilha), no caso Plan1? E a coluna H mais as da direita seriam Plan2?

A macro deveria ser leve. Eu não sei se quando você dia MUITOS está dizendo 1.000, 10.000 ou 100.000 linhas. A planilha que você executou essas muitas linhas é a de teste ou a definitiva?

Monte uma planilha de testes (exemplo), o mais próximo que conseguir da planilha definitiva, inclusive na quantidade de linhas, para que a transição exija o menor esforço possível.

Re: Macro para execução de código em determinadas células

Enviado: 26 Mar 2019 às 16:20
por Jimmy
Melhorei a performance da macro.

Baseado naquele leiaute que trabalhamos, gerei uma planilha com 10mil linhas, e na coluna H com 9 mil linhas com valores e mil vazias. Aqui rodou em 20 segundos.

Faça o teste ai. Antes feche os outros programas que estiverem abertos.

Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 07:32
por danielp
Bom dia Jimmy,

Vou preparar a planilha aqui mais parecida o possível com a original e te mando. Creio que 5mil linhas estará mais que o suficiente.

Obrigado pela força!!

Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 09:15
por Jimmy
Bom dia Daniel P.,

Ok, prepare a planilha de teste, mas apenas pra efeito de teste e curiosidade, abra a última planilha que te mandei, que tem 10mil linhas, e marque o tempo de execição. No meu PC demorou 20 seg.

Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 11:43
por danielp
Fiz uma parecida com a original.
Ao clicar no botão buscar na aba Pedido, ele executa a busca como estávamos fazendo.

Re: Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 11:44
por danielp
Jimmy escreveu:Bom dia Daniel P.,

Ok, prepare a planilha de teste, mas apenas pra efeito de teste e curiosidade, abra a última planilha que te mandei, que tem 10mil linhas, e marque o tempo de execição. No meu PC demorou 20 seg.
Essa aqui não deu certo, deu erro.

Re: Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 14:01
por Jimmy
danielp escreveu:Fiz uma parecida com a original.
Ao clicar no botão buscar na aba Pedido, ele executa a busca como estávamos fazendo.
Segue anexa a planilha adaptada para essa planilha

Jimmy San Juan

Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 14:19
por danielp
Vish! P-E-R-F-E-I-T-O!! Rodou instantaneamente, muito bom Jimmy!!
Caso eu queira alterar o nome da aba é só alterar o "PEDIDO" e "DATABASE", certo? E caso eu queira alterar o número de colunas, como faço? Tipo, na verdade eu mandei errado, a aba DATABASE não terá a coluna quantidade, somente a aba Pedido, então o certo seria copiar tudo pra uma coluna pra frente.

Re: Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 15:17
por Jimmy
Segue a última versão, com o nome das colunas mais claro para facilitar a manutenção.

Segue outra mensagem com comentários.

Re: Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 15:18
por Jimmy
Seguem comentários

Macro para execução de código em determinadas células

Enviado: 27 Mar 2019 às 16:22
por danielp
Show!! Ficou espetacular!! Muito obrigado pela força!! Abraço!!