Evènement sur une feuille

Bonjour,

je désire déclencher la Sub Affichindref si la plage $F$4:$G$4 de la feuille "Saisie" est modifiée. Cette plage est nommée "firef".

Le code de cette feuille est:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.AddressLocal(ReferenceStyle:=xlA1) = "$F$4:$G$4" Then

Affichindref

Else

Exit Sub

End If

End Sub

ça ne marche pas, la modification n'est pas détectée. Pourquoi?

Y a t-il un autre moyen?

Voilà le code qu'il te faut... Ne t'étonne pas du fait qu'il soit court

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("firef"), Target) Is Nothing Then Affichindref
End Sub

Dans ton code, la modification est détecté (CHAQUE modification est détecté par Worksheet_Change) mais ton code compare si l'adresse de la cellule qui est modifié - par ex. "F4" est la même que l'adresse de la plage "F4:G4" => ce qui n'est pas le cas.

Plutôt que de comparer les dex adresses, il faut vérifier si la cellule modifiée et la range sont une intersection. En VBA, cela peut être fait avec la fonction Intersect.

Merci Excel-Malin, ça marche au poil.

J'ai des programme Excel qui fonctionnaient avec le 97 et que je dois modifier. ça ne se passe pas toujours très bien.

Et puis j'ai perdu la main, dur dur de s'y remettre!

bobmgt a écrit :

Merci Excel-Malin, ça marche au poil.

J'ai des programme Excel qui fonctionnaient avec le 97 et que je dois modifier. ça ne se passe pas toujours très bien.

Et puis j'ai perdu la main, dur dur de s'y remettre!

Courage!

PS: tu peux marquer ce sujet comme "résolu"

Rechercher des sujets similaires à "evenement feuille"