Bonjour le forum
J'ai essayé de rédiger le code ci-dessous (macro événementielle sur une feuille) mais il ne fonctionne pas comme je le souhaite.
En effet, j'ai des macros qui sont logés dans des modules qui doivent s'exécuter suivant certaines conditions dépendantes des cellules J4 et J5.
Lorsque je change la valeur de J4, les macros suivantes doivent s'exécuter:
Macro1
Copie_Ecart_Mois
Aussi lorsque que je change la valeur de J5, les macros suivantes doivent s'exécuter:
Report_Ecart_Hebdo
Copier_cloture
Copier_RealNbre
Copier_RealVolume
Ce qui n'est pas le cas. Lorsque je change la valeur de J4, toutes les macros s'exécutent. Il en est de même que lorsque je change la valeur de J5.
Comment faire pour recadrer l'exécution des macros.
Si je change J5 que les macros qui doivent s'exécuter seulement se lancent et non pas que toutes les macros s'exécutent. Idem pour J5.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Left(Range("J4"), 1) = "M" Then If Target.Address = "$J$4" And Target.Value <> "" Then Macro1 Copie_Ecart_Mois 'Range("J5").Select 'End If ElseIf Left(Range("J5"), 1) = "S" Then If Target.Address = "$J$5" And Target.Value <> "" Then If MsgBox("La validation par OUI impactera votre TBC.Voulez-vous continuer?", vbYesNo, "Demande de confirmation") = vbYes Then Report_Ecart_Hebdo Copier_cloture Copier_RealNbre Copier_RealVolume Sheets("CC1").Select Range("c13:o64").Select Selection.ClearContents Range("J7").Select End If End If End If Application.EnableEvents = True End If Application.ScreenUpdating = False End Sub
Partager