Définissez la valeur d'une cellule lorsque des modifications non enregistrées sont détectées dans Excel à l'aide de VBA

J'essaie de détecter les changements dans un classur entier (peu importe les modifications) afin que toute modification qui se produise avant l'logging entraîne une cellule spécifique configurée à une valeur spécifique. L'objective est de montrer un indicateur visuel pour savoir si le classur est sauvegardé à l'aide du formatting conditionnel (sans problème, déjà mis en place).

Le code que j'utilise pour définir la valeur de la cellule est Sheets("Sheet1").Range("H1").Value = 1 .

J'ai essayé de détecter les modifications en utilisant Sub Worksheet_Change(ByVal Target As Range) , mais je ne sais pas comment configurer la scope.

Toute aide serait grandement appréciée.

Si je lis votre question correctement, vous souhaitez configurer votre feuille de calcul afin que chaque fois qu'un changement soit effectué par un user, mettez à jour la valeur dans la cellule.

Vous êtes déjà la plupart du time, il vous suffit de mettre le sous-programme suivant dans votre classur.

 Private Sub Worksheet_Change(ByVal Target As Excel.Range) Sheets("Sheet1").Range("H1").Value = 1 End Sub 

Une fois que cela est enregistré avec votre classur, ce classur spécifique effectuera les fonctionnalités dont vous avez besoin. Voici un lien vers la documentation – http://msdn.microsoft.com/en-us/library/office/ff839775(v=office.15).aspx .

 Private Sub Worksheet_Change(ByVal Target As Excel.Range) 'Target is the variable name of the Range where the Change occured If thisworkbook.saved=false then Sheets("Sheet1").Range("H1").Value = 1 else Sheets("Sheet1").Range("H1").Value = 0 'or other value End if End Sub