Macro événementielle – choix de la « cible » If Intersect(Target, Range("C6"))

Hub

XLDnaute Occasionnel
Bonjour,

Après quelques essais, j’en conclue, en ce qui concerne les macros événementielles, que le choix de la cible ne peut pas se faire sur une cellule qui serait le résultat d’un calcul ou d’un test.

Dans le fichier joint, vous trouverez un développement très épuré de ce que je souhaite. Dans l’utilisation finale, étant donné le contexte, je n’aurai pas d’autre possibilité que d’utiliser pour cible le résultat d’un test.

Que me conseillez-vous pour contourner ce problème ?

Merci pour vos réponses,

@+
 

Pièces jointes

  • Essai macro evenementielle1.xls
    32 KB · Affichages: 16

Dranreb

XLDnaute Barbatruc
Re : Macro événementielle – choix de la « cible » If Intersect(Target, Range("C6"))

Bonjour.
En tout cas une Worksheet_Change ne réagit qu'au changement du contenu d'une cellule.
Lorsque la valeur d'une formule change, ça ne change pas le contenu de la cellule qui la porte.
 

vgendron

XLDnaute Barbatruc
Re : Macro événementielle – choix de la « cible » If Intersect(Target, Range("C6"))

Bonjour,

j'ai pas bien compris non plus..
mais si tu souhaites que ta macro Essai1 se lance lorsque les formules de la feuille 3 se mettent à jour. il faut utiliser l'evènement Calculate..
Change. c'est quand l'utilisateur change lui meme une valeur.

'dans le code de la feuille 3
Code:
Private Sub Worksheet_Calculate()
If Intersect(Sheets("Feuil3").Range("C6"), Range("C6")) Is Nothing Then Exit Sub
    Essai_1
End Sub

et pour ta macro Essai1, je rajoutterai application.enableEvents=false et true en début et fin..
au risque de tourner en rond..

Code:
Sub Essai_1()
Application.EnableEvents = False
    Sheets("Feuil3").Select
    If Range("C4") >= Range("C3") Then
        Range("C6").Value = 1
        Sheets("Feuil1").Activate
        MsgBox "non"
    Else
        Range("C6").Value = 2
        Sheets("Feuil1").Activate
        MsgBox "oui"
    End If
    Application.EnableEvents = True
End Sub
 

Hub

XLDnaute Occasionnel
Re : Macro événementielle – choix de la « cible » If Intersect(Target, Range("C6"))

Compliquons les choses,
Dans le fichier joint, comment modifier la macro pour que :
en considérant les valeurs de la feuille 3, si C3 n’a pas changé mais si C4 et C6 ont changé, alors, MsgBox « erreur »

D'avance merci pour vos réponses,

@+
 

Pièces jointes

  • Essai macro evenementielle2.xls
    34.5 KB · Affichages: 16

Statistiques des forums

Discussions
312 205
Messages
2 086 199
Membres
103 156
dernier inscrit
Ludo94130