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 -Détection de modification de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Par défaut VBA -Détection de modification de cellule
    Bonjour,

    J'essaye de détecter si une cellule a changé de valeur ou non.
    J'ai trouvé pas mal d'exemple de worksheetchange mais cela ne convient pas car
    1/ je ne connais pas la valeur initiale de la cellule
    2/ je ne connais pas la nouvelle valeur.

    Tout ce que je veux faire c'est être capable de détecter dans une plage de cellules donnée si une cellule a changé de valeur et si c'est le cas exécuter la macro qui va bien....

    Dans tous les exemples que j'ai pu trouver, la cellule en question est comparée à une autre cellule et jamais avec elle_même.

    Peut être que je peux inclure cette comparaison directement dans la macro sans passer par un fonction supplémentaire ?

    Si l'un de vous a une idée ce serait avec grand plaisir !!!

    Merci

  2. #2
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour gwen.s,

    pour connaitre la valeur d'une cellule, déclare une variable Public dans un module standard et utilise l'événement "Workbook_Open" pour stoker la valeur de cette variable, ensuite avec l'événement "Worksheet_Change"
    tu pourra comparer Target avec la variable, executer une action et modifier la variable avec la nouvelle valeur.

  3. #3
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour gwen.s isabelle pas si simple!!

    un premier exemple qui peut être suffisant mais si tu re ecris la meme valeur pas bon pour plage a1:b10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:B10")) Is Nothing Then 'MsgBox var 'ta macro
    End Sub

    autrement code different a tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Public var As Variant
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
    If var <> Target Then MsgBox "changement" 'ta macro
    End If
    End Sub
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
    var = Target.Value
    End If
    End Sub

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Par défaut
    Bonjour,

    Merci pour votre aide.

    Ca marche très bien et voici le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal target As Range)
     
    Set Plage = Range("a6:a20")
    Rg = 0
    If Not Intersect(target, Plage) Is Nothing And target.Count = 1 Then
    new_value = target.Value
    nb_row = target.Row
    SelectionColonnesLignes 'la macro à exécuter
    End If
    End Sub

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

Discussions similaires

  1. [XL-2007] Détection modification de cellule et copie de contenu de cellule + username
    Par Vitalic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/12/2012, 15h09
  2. [XL-2000] détection modification contenu cellules
    Par Noe06 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 30/05/2012, 11h22
  3. VBA-E modification de cellule
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/06/2008, 12h50
  4. [VBA] Parcourir une plage de cellule
    Par Dinytro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2005, 08h18
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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