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 :

[VBA-E]Lancer une macro sur changement de valeur cellule ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [VBA-E]Lancer une macro sur changement de valeur cellule ?
    Bonjour,

    La question est dans le titre. Je voudrais savoir si c'est possible de lancer automatiquement une macro sur le changement d'une valeur de cellule et comment on fait.
    Je sais qu'avec la commande "Worksheet_Change(ByVal Target As Range)" je peux peut-être me démerder mais j'aimerais que la macro se lance sur le changement d'une cellule bien déterminée.

    Merci pour toute aide

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Il te suffit de tester l'adresse de Target, qui représente la cellule modifiée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address="$A$1" Then
        ...
        End If
    End Sub
    Tu peux évidemment tester la ligne, la colonne, ou l'appartenance de Target à une place donnée, avec les lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If Target.Row = ...
        If Target.Column = ...
        If Not Intersect(Target, Range("A1:B10")) Is Nothing then ...
    Ok?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    En faite, à chaque fois qu'une truc se modifie, il va faire le test ?

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Oui, il est évident que l'évènement surgit à chaque modification dans une cellule de la feuille, sinon, quand veux-tu tester la cellule qui est modifiée :
    Si, à l'intérieur de la macro évènementielle, tu dois modifier des cellules de la feuille, tu peux utiliser ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Worksheet_Change(Target as Range)
        On Error Goto Erreurs
        If Target.Address = "$A$1" Then
            Application.EnableEvents = False
            ...
            Application.EnableEvents = True
        End If
     Erreurs:
        If Err<>0 then Application.EnableEvents = True
    End Sub
    Avec ce code, tu désactives la gestion des évènements le temps tu traitement de ta procédure. Il faut le réactiver après et prévoir la gestion d'erreurs pour le remettre à True lorsque qu'une erreur survient.

Discussions similaires

  1. Lancer une macro sur changement de valeur cellule
    Par jnauche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/03/2014, 19h08
  2. Lancer une macro sur changement de valeur cellule
    Par maximilien59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/01/2012, 11h10
  3. Lancer une macro sur changement de valeur cellule
    Par reyzilin dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/12/2011, 17h57
  4. Lancer une macro sur changement de valeur cellule
    Par jndruo78150 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/07/2011, 13h43
  5. Lancer une macro sur changement de valeur cellule
    Par filipbou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/09/2009, 20h25

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