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
23994
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
-
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
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Bonjour,

 If Not Application.Intersect(Target, Range("D6,E25,I32")) Is Nothing Then
                'code de traitement
    End If
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 647
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
23994
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
6 719
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