Excel - Comment changer le code en classeur et non en feuille de calcul

1

J'ai le code suivant:

Private Sub Worksheet_Change(ByVal Target As Range)
    Set KeyCells = Range("C9")
    Set isect = Application.Intersect(KeyCells, Range(Target.Address))
    If Not isect Is Nothing Then
        Application.EnableEvents = False
        isect.Value = isect.Value - 40
        Application.EnableEvents = True
    End If
End Sub

ce que je veux faire, c'est le rendre universel, c'est-à-dire travailler pour toutes les feuilles et non pour une seule. Comment faire?

FernandoSBS
la source

Réponses:

3

Déplacer le code vers la ThisWorkbookpage

vba

et changez l'événement en Workbook_SheetChangeévénement.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Set KeyCells = Range("C9")
    Set isect = Application.Intersect(KeyCells, Range(Target.Address))
    If Not isect Is Nothing Then
        Application.EnableEvents = False
        isect.Value = isect.Value - 40
        Application.EnableEvents = True
    End If
End Sub
Brad Patton
la source