Exécuter une macro lorsque la valeur d'une cellule change. [Résolu/Fermé]

Signaler
Messages postés
16
Date d'inscription
lundi 17 juillet 2017
Statut
Membre
Dernière intervention
24 avril 2018
-
Messages postés
23380
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
-
Bonjour,

Je veux Exécuter la macro située ci-dessous que lorsque les 3 Cellules "D6" "E25" et "I32" changent.

J'ai deux problèmes :
- Le premier c'est que j'ai pu faire exécuter le macro que lorsque je change la celulle "D6" avec ce code:

" If Not Application.Intersect(Target, Range("D6")) Is Nothing Then
Exit Sub
End If"

Mais quand j'ai voulu faire

If Not (Application.Intersect(Target, Range("D6"))
Or Application.Intersect(Target, Range("E25"))
Or Application.Intersect(Target, Range("I32"))) Is Nothing Then
Exit Sub
End If

Il s'affiche un message d'erreur.

Le deuxième problème c'est que les 2 cellules "E25" et "I32" changent automatiquement en fonction de données du fichier. C'est à dire je veux que la macro s'exécute lorsque leurs contenus changent et non lorsque on click sur eux.

Vous trouverez la macro ci-dessous

Merci d'avance.


Private Sub Worksheet_Change(ByVal Target As Range)


If Intersect(Target, Range("D6")) Is Nothing Then
Exit Sub

End If


If Range("E25").Value = 5 Then
Sheets("Fiche_opérateur").Range("a67:a77").EntireRow.Hidden = True

Sheets("Rapport").Range("a132:a142").EntireRow.Hidden = True

End If


If Range("I32") = "Vous pouvez ne pas mesurer K2A" Then
Sheets("Fiche_opérateur").Range("a98:a185").EntireRow.Hidden = True

End If

If Range("d6") = "Sonomètre" Then

Sheets("Détail résultats Sonomètre").Visible = True
Sheets("Détail résultats Centrale LANXI").Visible = False
End If

End Sub

3 réponses

Messages postés
15238
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 juin 2020
1 306
Bonjour,

 If Not Application.Intersect(Target, Range("D6,E25,I32")) Is Nothing Then
                'code de traitement
    End If
Messages postés
16
Date d'inscription
lundi 17 juillet 2017
Statut
Membre
Dernière intervention
24 avril 2018

Merci pour ta réponse.
Mais quand j'ai fait "D6,E25,I32" ça affiche un message d'erreur par contre avec "D6:25:I32" ça bien marché.
Messages postés
8128
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
24 juin 2020
1 432
Bonjour,

« Le deuxième problème c'est que les 2 cellules "E25" et "I32" changent automatiquement en fonction de données du fichier. C'est à dire je veux que la macro s'exécute lorsque leurs contenus changent et non lorsque on click sur eux. »
Si elles changent automatiquement grâce à une macro, la méthode de f894009 (que je salue) convient, par contre s'il s'agit de formules, l'évènement Change doit surveiller les données sources qui entrent en jeu dans les formules !
Messages postés
16
Date d'inscription
lundi 17 juillet 2017
Statut
Membre
Dernière intervention
24 avril 2018

Merci Patrice
Messages postés
23380
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
6 229
Bonjour,

Pourquoi un doublon ?
Tu pourrais avoir la politesse de faire un retour ici :
https://forums.commentcamarche.net/forum/affich-34808247-fichier-excel-lent-a-cause-d-une-macro#p34813231 stp ?
eric