Ir ao conteúdo
  • Cadastre-se

Automatização de macro excell


Posts recomendados

... fiz os testes mas o resultado foi ficar rodando sem parar...

Talvez essa "impressão de rodar continuamente" seja consequência dos intervalos curtos entre os "inputs" do link DDE. Veja abaixo.

 

segue um link para  melhor entendimento,  https://www.youtube.com/watch?v=A23RiLK7ZQQ

Esse vídeo não ajudou no entendimento do problema.

 

 

Este código abaixo utiliza a célula "E1" para armazenar um contador das vezes que a célula "A1" é alterada. A cada alteração de "A1" é adicionado 1 ao valor de "E1" e os códigos "compra1" e "venda1" só rodarão após "E1" atingir o valor 20. Então após um tempo, por exemplo 30seg ou 1min, você poderá saber quantas vezes a célula "A1" teve seu valor alterado pelo "input" do link.

Além de possibilitar esse monitoramento, na prática isso vai aumentar os intervalos de disparo das suas duas macros e talvez você consiga ver se o problema de "rodar sem parar" tem origem no código ou nos intervalos dos "inputs" do link. Se precisar altere o valor "20" no código.

Ao rodar, tanto o "compra1" como o "venda1", "E1" será reiniciada.

 

Coloque este código no lugar do anterior.

Private Sub Worksheet_Calculate() Application.EnableEvents = False  On Error Resume Next  If [A1] = 1 And [E1] >= 20 Then   [E1] = "": compra1  ElseIf [A1] = 0 And [E1] >= 20 Then   [E1] = "": venda1  Else: [E1] = [E1] + 1  End If Application.EnableEvents = True End Sub

 

Link para o comentário
Compartilhar em outros sites

boa noite Osvaldo, fiz o teste com a nova programação, ela realmente capta os inputs do dde, são +/- 5 por segundo, horas mais horas menos, mas continuo com o problema, exemplo: a condição 1 aparece e permanece por 5 minutos, a macro deveria executar uma unica vez, mas desta forma programada mesmo que ajustada para leitura a cada minuto compraria 5 vezes no lugar de uma , e por muitas vezes a mesma deixa oportunidades passarem, estamos quase lá, 

 

 

desde já agradeço sua atenção, você é fera 

Link para o comentário
Compartilhar em outros sites

Então podemos concluir que o código funciona corretamente :) e que a doidera :crazy:  é consequência da frequência dos inputs do DDE (5/seg é punk! :eek:) ?

 

O critério utilizado no código do post #26 para disparar ou "compra1" ou "venda1" foi a quantidade de 20 inputs. Esse valor pode ser alterado, como também podem ser utilizados outros critérios como temporização e variação da cotação para disparar aqueles códigos.

Os critérios citados podem se utilizados isolados ou combinados.

Veja o que deseja testar e vamos alterando o código.

Link para o comentário
Compartilhar em outros sites

oi osvaldo tudo bem ? por tempo ? posso testar , tem como multiplicar essa sua formula exemplo /; deixar uma condição para 20 imputs e mais 4 no total de 5 para ajustes , exemplo: um com 20 imputs outro vou deixar com 30 outro com 100 e por ai vai.. porque ai posso ajustar compras para um tempo rápido e outros para imputs maiores ... tentei multiplicar a configuração mas nao consegui. 

Link para o comentário
Compartilhar em outros sites

tem como multiplicar essa sua formula exemplo /; deixar uma condição para 20 imputs e mais 4 no total de 5 para ajustes , exemplo: um com 20 imputs outro vou deixar com 30 outro com 100 e por ai vai.. porque ai posso ajustar compras para um tempo rápido e outros para imputs maiores ... tentei multiplicar a configuração mas nao consegui. 

Entendi que você quer testar simultaneamente 5 códigos diferentes no critério (quantidade de inputs). É isso?

Na mesma planilha não é possível.

No entanto poderá ser feito em 5 planilhas diferentes. Para isso você precisa alterar o valor 20 nas duas ocorrências do código e depois instalar no módulo de outra planilha, repita até a quinta planilha.

Pode alterar o valor 20 e deixar com valores iguais para disparar os dois códigos, ex. 30 para os dois, ou valores diferentes, por ex. pode colocar 50 como critério para disparar "compra1" e 80 para "venda1".

Todas as planilhas em teste deverão receber os sinais do link DDE. Se não for possível diretamente,  você poderá "puxar" indiretamente por fórmulas os inputs do link para as demais planilhas. Ex. se o link alimenta a célula "A1" da Plan1, nas demais planilhas, em qualquer célula vazia, coloque =Plan1!A1, e então faça os testes.

Link para o comentário
Compartilhar em outros sites

Então podemos concluir que o código funciona corretamente :) e que a doidera :crazy:  é consequência da frequência dos inputs do DDE (5/seg é punk! :eek:) ?

 

O critério utilizado no código do post #26 para disparar ou "compra1" ou "venda1" foi a quantidade de 20 inputs. Esse valor pode ser alterado, como também podem ser utilizados outros critérios como temporização e variação da cotação para disparar aqueles códigos.

Os critérios citados podem se utilizados isolados ou combinados.

Veja o que deseja testar e vamos alterando o código.

osvaldo como temporizar ? como faremos ? 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!