IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment modifier le contenu d'une cellule sans déclencher l'événement de saisie


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 61
    Points : 53
    Points
    53
    Par défaut Comment modifier le contenu d'une cellule sans déclencher l'événement de saisie
    Bonjour à tous,

    Il est probable que l'intitulé ne soit pas très clair, mais ce n'est pas simple à expliquer en une ligne.
    Je vais donc essayer d'exposer mon problème clairement et simplement.

    Lorsque j'encode une valeur dans une cellule (X,Y), cette modification est détectée par une procédure du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Worksheet_Change(ByVal Target As Range)
       CELLULE = Target.Address
       calcul CELLULE, Target.Value
    end sub
    afin de lancer une procédure "calcul" qui... doit faire des tas de choses.

    Parmi ces choses, elle analyse la valeur encodée dans notre cellule, et si le format ne lui convient pas, le modifie pour remplacer la donnée telle qu'elle a été saisie, et .... pardaf ! ceci est considéré comme une nouvelle saisie et on recommence le processus qui tourne en rond !

    La procédure de l'événement Change ne fait pas la différence entre la saisie d'une valeur au clavier ou le stockage d'une donnée dans une cellule par une macro.

    Ma question:
    Comment puis-je empêcher,lors de la correction du contenu de la cellule par la macro VBA, de déclencher la procédure de l'événement Change ?

    J'espère avoir été assez clair (sinon, je suis prêt à essayer de réexpliquer ), et j'espère tout autant que quelqu'un pourra éclairer ma lanterne !

    Merci d'avance à ceux qui seront tentés d'essayer !
    Mike

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut comment modifier le contenu
    bonjour,

    dans la procédure essais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents=False    
       CELLULE = Target.Address
       calcul CELLULE, Target.Value
      Application.EnableEvents=True
    cordialement,

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Bonjour Paul,

    Tout d'abord merci de ta réponse.
    Lorsque je l'ai lue, j'ai pensé que cela n'allait pas m'aider;
    en effet, placée là, la paire d'instructions EnableEvents=False et True allait court-circuiter la procédure de calcul à chaque saisie dans une cellule et ce n'est pas ça que je voulais.

    Mais à la réflexion, je me suis dit qu'en la plaçant de part et d'autre de l'instruction de la macro VBA qui écrit dans cette cellule, ça ferait ce que je voulais. Et c'est bien le cas !!

    Grand merci donc de ton aide !!
    C'est vraiment chic de trouver de l'aide quand on a besoin

    Mike

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment modifier le contenu d'une cellule excel avec C#
    Par roujij dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/08/2009, 14h18
  2. Réponses: 2
    Dernier message: 06/04/2007, 12h17
  3. Comment lire le contenu d'une cellule
    Par lthibert dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2007, 17h21
  4. modifier le contenu d'une cellule
    Par STEPH69000 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/06/2006, 17h12
  5. [VB6]Comment centrer le contenu d'une cellule
    Par zackrel dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 19/05/2006, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo