Worksheet_Change

laurentlec

XLDnaute Nouveau
Bonjour,
J'aimerais gérer l'activation automatique d'une macro lorsque une seule cellule change .
Voici le code que j'utilise. Ca marche nickel mais la seule chose est que excel calcule à chaque fois que je modifie n'importe quelle zone de la feuille .
J'aimerais qu'il ne lance les macros que lorsque je modifie la zone de référence.
Quelle est la formule a utiliser ?
Ci dessous , ce que j'utilise en VBA

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("B8").Value = "Refresh GC" Then Call PivotV1
If Range("B8").Value = "Refresh LA" Then Call PivotV2

End Sub

Pour info, la cellule B8 change en fonction d'un menu déroulant se trouvant au-dessus mais à mon avis cela ne change en rien le problème.
Il y a donc deux conditions pour la même zone.

Merci d'avance.
 

Caillou

XLDnaute Impliqué
Re : Worksheet_Change

Bonjour,

A mon avis, il faut rajouter un test pour que la macro ne s'éxécute que lorsque la cellule de référence change.
If Target.Address <> "$A$1" then Exit Sub
(à adapter : remplacer A1 par l'Adresse de la cellule de référence)

Caillou
 

gilbert_RGI

XLDnaute Barbatruc
Re : Worksheet_Change

Bonjour

avec ceci peut-être

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("b8")) Is Nothing Then
Select Case [b8].Value
Case "Refresh GC"
Call pivotV1
Case "Refresh LA"
Call pivotV2
End Select
End If
End Sub

Si b8 change il faut nommer la cellule et y faire référence ensuite
 
Dernière édition:

laurentlec

XLDnaute Nouveau
Re : Worksheet_Change

Merci pour vos réponses mais çà n'a pas l'air de fonctionner
il ne lance plus les macros dans aucun des cas
par contre, j'ai omi de vous mentionner que je suis en excel 2010, serait-ce la cause ?
:)
Gilbert, quand vous parlez que je dois nommer la case b8 si elle change , cela se traduit comment en excel ?
 

gilbert_RGI

XLDnaute Barbatruc
Re : Worksheet_Change

voilà le ficher exemple





et avec la cellule nommée "tartempion"
 

Pièces jointes

  • condition_cellule_valeurs.xls
    51 KB · Affichages: 29
  • condition_cellule_valeurs.xls
    51 KB · Affichages: 33
  • condition_cellule_valeurs.xls
    51 KB · Affichages: 32
  • condition_cellule_valeurs_v2.xlsm
    19 KB · Affichages: 29
Dernière édition:

laurentlec

XLDnaute Nouveau
Re : Worksheet_Change

Je vois pourquoi çà ne fonctionne pas sur base de l'exemple que vous m'avez fait parvenir.
En fait, ma cellule cible est alimentée par une formule sur base d'un menu déroulant se trouvant au-dessus.
Quand je fais comme vous avec un menu déroulant directement çà fonctionne par contre avec mon système où ma cellule est alimentée sur base d'une formule , çà ne marche pas
je peux encore abuser et vous demandez si vous avez une astuce pour adapter cela ?
Encore merci pour votre aide
 

laurentlec

XLDnaute Nouveau
Re : Worksheet_Change

Regarde la pièce jointe condition_cellule_valeurs.xls

Dans la colonne F c'est le menu déroulant en F6 et le résultat en F7.
Le test devrait s'effectuer sur le F7 qui est une variable alimentée par une formule
je pense qu'il faut indiquer qu'il faut prendre uniquement la valeur de la cellule pour qu'il puisse la reconnaitre
 

Pièces jointes

  • condition_cellule_valeurs.xls
    32 KB · Affichages: 21
  • condition_cellule_valeurs.xls
    32 KB · Affichages: 21
Dernière édition:

laurentlec

XLDnaute Nouveau
Re : Worksheet_Change

Bonjour Gilbert,
Autant pour moi ......
En m'appliquant un peu, j'ai remarqué que pour la ligne Intersect , il fallait mettre la zone au-dessus. Moi je prenais toujours la même zone et forcément çà ne pouvait pas marcher.
Merci pour votre aide.....
Bonne journée.
 

Discussions similaires

Réponses
1
Affichages
722

Statistiques des forums

Discussions
312 489
Messages
2 088 848
Membres
103 972
dernier inscrit
steeter