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 :

Lancement macro si il y a changement de valeur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Points : 20
    Points
    20
    Par défaut Lancement macro si il y a changement de valeur d'une cellule
    Bonjour !!

    Sa fait maintenant une heure que je cherche la solution sur votre fofo mais visiblement j'ai pas trouvé ce que je désirais. Donc j'appelle à votre aide.
    Je pense que ça devrait pas prendre longtps

    J'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Count > 1 Then Exit Sub
     
            If Target.Address = Range("J3").Value Then
            Application.Run "'Classeur2.xls'!fleche_satisfied_customers"
     
            ElseIf Target.Address = "$J$4" Then
            Application.Run "'Classeur2.xls'!fleche_dissatisfied_customers"
     
            End if
     
    End sub

    Le but de celui-ci est que lorsque la valeur de la cellule J3 ou J4 change les macros qui leurs sont associées se lancent.
    Actuellement le problème est qu'il faut que j'aille dans la feuille que je clique sur la case J3 ou J4 et alors la macro se lance. Moi j'aimerais donc que des que la valeur change elle se lance.
    * j'oublié il y a une lien entre ces cases et d'autre case. (il s'agit de la somme de 2 autre cases)

    Voila je pense que ça doit pas etre complexe mais j'ai beau metre des value a gauche à droite je vois pas.

    Je ne sais pas s'il faudrait pas sauvegarder la valeur précédente des cellules et comparer systématiquement avec la nouvelle valeur. Ou si simplement le fait qu'elle change suffise a lancer la macro ?


    Merci beaucoup par avance

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Tu peux essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Dim valJ3, valJ4
     
    Private Sub Worksheet_Activate()
        valJ3 = Range("J3")
        valJ4 = Range("J4")
    End Sub
     
    Private Sub Worksheet_Calculate()
    If Range("J3") <> valJ3 Then
        valJ3 = Range("J3")
        Application.Run "'Classeur2.xls'!fleche_satisfied_customers"
    ElseIf Range("J4") <> valJ4 Then
        valJ4 = Range("J4")
        Application.Run "'Classeur2.xls'!fleche_dissatisfied_customers"
    End If
    End Sub
    PS : il faut la première fois activer une autre feuille et revenir sur la feuille en question pour initialiser les deux variables
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Un grand merci ! Sa fonctionne très bien!

    Je pensais aussi qu'il fallait faire une sauvegarde de la valeur précédente mais je ne savais pas la mettre en place. Merci beaucoup

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Un petit clic sur ?

    Et, à l'occasion, pourrais-tu nous dire où en est cette discussion?

    Merci
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [XL-2010] Exécution macro lors d'un changement de valeur dans une cellule
    Par yoyo3d dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/01/2015, 20h06
  2. Réponses: 1
    Dernier message: 06/11/2013, 16h41
  3. [XL-2003] détection d'un changement de valeur d'une cellule
    Par hantran dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/05/2010, 10h20
  4. Charger Macro apres changement de valeur d'une cellule
    Par jackfred dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2007, 14h51
  5. [VBA-E] RechercheV si changement de valeur sur une cellule
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2007, 16h22

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