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 :

Worksheets change => macro que quand il y a un chgmt dans la cellule [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 81
    Par défaut Worksheets change => macro que quand il y a un chgmt dans la cellule
    Bonjour à tous,
    Je rentre tout de suite dans le vif du sujet:

    Je souhaite effectuer une mise en forme spéciale dès que l'utilisateur modifie une cellule. Cette mise en forme se fait via une macro "mise_en_evidence" qui prend en paramètre l'adresse de la cellule.

    J'utilise la macro suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address = Range("A5").Address Then
        Run ("mef")
    Else
        Run ("mise_en_evidence"), Target
    End If
     
    End Sub
    Mon problème est que je souhaite appliquer cette mise en forme UNIQUEMENT lorsque la valeur de la cellule change.
    Or actuellement, même si on double clique sur la cellule et que l'on fait aucune modif, la macro est appliquée.

    Si vous avez une solution, je suis preneur!

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,

    Tu peux sauvegarder la valeur de la cellule et ensuite la comparer, soit tu mets la valeur dans une autre cellule, soit tu ajoutes une plage nommée.

    Un exemple pour créer une plage nommée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Creation_Var1() 
     
    Dim MaVar As Long 
    MaVar = 10 
    ThisWorkbook.Names("var1").Delete 
    ThisWorkbook.Names.Add Name:="var1", RefersToR1C1:=MaVar 
     
    msgbox [var1] 
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 81
    Par défaut
    Merci beaucoup pour l'idée!!
    Du coup j'ai modifié le code comme suit:

    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
    Public ValeurInit As String
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        ValeurInit = Range(Target.Address).Value
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address = Range("A5").Address Then
        Run ("mef")
    Else
        If (Range(Target.Address).Value <> ValeurInit) Then
            Run ("mise_en_evidence"), Target
        End If
    End If
     
    End Sub
    Et ça fonctionne.
    Merci beaucoup!
    Bonne journée!

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Oui les variables publiques peuvent aussi être une solution, par contre cela ne fonctionne pas si par exemple tu fermes et réouvre ton classeur, à la différence d'une info placée dans une cellule (par exemple dans une feuille cachée) ou d'une plage nommée.
    Tout dépend si on veut pouvoir garder ou pas la donnée.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/04/2015, 12h09
  2. Réponses: 1
    Dernier message: 27/03/2013, 17h26
  3. [AIX 5.3] Macro que je comprends mal
    Par Bahan dans le forum C
    Réponses: 3
    Dernier message: 24/01/2007, 15h32
  4. Graphique a ne remplir que quand demande
    Par catoucat dans le forum Access
    Réponses: 4
    Dernier message: 22/06/2006, 10h26
  5. [Q] que faire quand un plugin n'apparait pas dans eclipse
    Par zolive dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 30/08/2004, 23h38

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