locked
Função no Excel é executada várias vezes antes de Clicar em OK. RRS feed

  • Pergunta

  • Olá pessoal,

    estou atravessando um novo problema na programação do nosso amigo excel.

    Ocorre que desenvolvi uma determinada Função que recebe 02 atributos.

    Dentro do códio da função existe uma comparação entre estes 02 valores, o primeiro não pode ser menor do que o segundo. Caso isto ocorra, é enviada uma msgbox para o usuário informando o problema e é atribuido via código 02 valores padrão. Tudo funciona perfeitamente, salvo que, antes de clicar em OK na caixa de atributos (onde o usuário informa as células com os valores de x1 e x2) a função está sendo executada 02 vezes, ou seja a msgbox está sendo enviada 02 vezes, antes de clicar em OK, e o pior, clicando em OK ela é exibida mais 02 vezes.

    Informo tb que no código não existe nenhum loop para que execute a função mais de 1 vez.

     

    Alguém já passou por isso?

    pode me ajudar?

    abraço a todos

     

    sexta-feira, 30 de junho de 2006 20:28

Respostas

  • Oi Ubirajara,

    se você muda o conteúdo da célula, mesmo que por código, o evento será disparado novamente.

    Se não quiser este efeito (geralmente não o queremos), deve ajustar a propriedade EnableEvents:

     

    Application.EnableEvents=False

    'teu código que modifica valores

    Application.EnableEvents=True

     

    Espero ter sido útil.

    quarta-feira, 5 de julho de 2006 04:16
    Moderador

Todas as Respostas

  • Amigo, teria como você postar o trecho de código que está dando este problema? Se sim, publique-o para que possamos analisá-lo.

    Pode ser, provavelmente, a ordem dos comandos na estruturação. Já passei por este problema e resolví reordenando os comandos.

    Mas poste o código que o ajudaremos.

    Att

    sábado, 1 de julho de 2006 11:10
  • Oi Ubirajara,

    se você muda o conteúdo da célula, mesmo que por código, o evento será disparado novamente.

    Se não quiser este efeito (geralmente não o queremos), deve ajustar a propriedade EnableEvents:

     

    Application.EnableEvents=False

    'teu código que modifica valores

    Application.EnableEvents=True

     

    Espero ter sido útil.

    quarta-feira, 5 de julho de 2006 04:16
    Moderador