Tampon d'événements sur Excel

Youri

XLDnaute Occasionnel
Bonjour à tous,

Je viens de remarquer le problème suivant sous Excel :
Supposons que nous avons une liste de validation dans la cellule A1.
Supposons également que nous utilisons des procédure événementielles sous vba (par exemple Worksheet_Change ou Worksheet_SelectionChange).
Lorsque nous entrons des données valides dans la cellule A1, tout se passe bien mais si on entre de mauvaises données, Excel propose deux options : réessayer et annuler. Si on clique sur annuler, tout se passe également bien.
Toutefois, si on clique sur réessayer, qu'on fait une erreur à nouveau, qu'on réessaye une nouvelle fois et qu'enfin on réussisse à entrer les bonnes données, l'événement SelectionChange sera exécuté 3 fois et l'événement Change 5 fois alors que normalement ils auraient du être exécutés 1 fois chacun.

J'ai joins un fichier pour exemple. La cellule A1 contient la liste de validation. La cellule B1 augmente de 1 à chaque fois que l'événement SelectionChange est enclenché.
La cellule B1 augmente de 1 à chaque fois que l'événement Change est enclenché.
Vous pouvez essayer ce que j'ai dit en entrant des données non valides en A1 puis en réessayant plusieurs fois grâce au bouton Réessayer. Finissez par entrer des données valides et observez alors l'évolution des cellules B1 et C1.

Voilà, si vous avez une solution à ce problème, je vous en remercie à l'avance,
Youri
 

Pièces jointes

  • Validation.xls
    25 KB · Affichages: 74
  • Validation.xls
    25 KB · Affichages: 73
  • Validation.xls
    25 KB · Affichages: 77

Youri

XLDnaute Occasionnel
Re : Tampon d'événements sur Excel

Re:

De toute façon c'est vraiment nul la validation (ils pouvaient pas faire un truc bien chez Microsoft ...) :
la validation ne fonctionne pas lors du copié collé de valeurs
la validation disparaît purement et simplement lors du copié-collé normal
si on sélectionne plusieurs cellules et qu'on active une cellule autre que celle qui contient la validation, qu'on entre n'importe quoi et qu'on valide grâce à ctrl+entrée, la validation ne fonctionne pas.
Franchement, je vois pas à quoi ça servait de faire cette option. Le seul truc qui sert vraiment là dedans, c'est la liste déroulante ... et encore, on a les userforms qui peuvent le faire mais qui, eux aussi, sont bien évidemment bourrés de bugs, dont on découvre les conséquences comme toujours au dernier moment ...

Désolé pour ce poste complètement inutile, mais c'est vraiment agaçant de découvrir des bugs cachés, dont on n'est pas responsable, après avoir fait tout le boulot.

Bonne journée à tous,
Youri
 

Gorfael

XLDnaute Barbatruc
Re : Tampon d'événements sur Excel

Youri à dit:
Re:

De toute façon c'est vraiment nul la validation (ils pouvaient pas faire un truc bien chez Microsoft ...) :
la validation ne fonctionne pas lors du copié collé de valeurs
la validation disparaît purement et simplement lors du copié-collé normal
si on sélectionne plusieurs cellules et qu'on active une cellule autre que celle qui contient la validation, qu'on entre n'importe quoi et qu'on valide grâce à ctrl+entrée, la validation ne fonctionne pas.
Franchement, je vois pas à quoi ça servait de faire cette option. Le seul truc qui sert vraiment là dedans, c'est la liste déroulante ... et encore, on a les userforms qui peuvent le faire mais qui, eux aussi, sont bien évidemment bourrés de bugs, dont on découvre les conséquences comme toujours au dernier moment ...

Désolé pour ce poste complètement inutile, mais c'est vraiment agaçant de découvrir des bugs cachés, dont on n'est pas responsable, après avoir fait tout le boulot.

Bonne journée à tous,
Youri
Salut
Il ne faut pas confondre bugs et fonctionnement qui ne t'interesse pas.
Chaque fois que tu modifies une cellule, elle déclenche la macro WorkSheet_Change ? Où est-ce une erreur ?
C'est parce que tu valides que la fonction validation se déclenche ? Bizarre.
Une validation par Ctrl passe la validation ? Fais-la normalement
Un copier/coller normal remplace la cellule cible ? Encore normal.

Aucune des actions que tu cites ne me semble résulter d'un bug, mais plutôt d'une opinion.
C'est vrai qu'Excel ne fait pas toujours ce que je voudrais, mais de là à parler de bugs !

La liste de validatiion, tu peux la remplacer par du code, mais est-ce plus interessant ? Et ça demande d'autres compétences.

Excel est un outil qui a été (bien) conçu pour un certain nombre de tâches. Mais c'est comme un tournevis plat : tu peux l'utiliser pour les vis cruciformes, mais dans ce cas, il ne faut pas te plaindre du résultat.
A+
 

Statistiques des forums

Discussions
312 305
Messages
2 087 080
Membres
103 457
dernier inscrit
fab2614