Vous voulez accrocher dans la Worksheet_Change
event.
Quelque chose comme cela devrait vous aider à démarrer:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "OVER" Then
MsgBox "Cell " & Target.Address & " crosses OVER"
ElseIf Target.Value = "UNDER" Then
MsgBox "Cell " & Target.Address & " crosses UNDER"
End If
End Sub
Sub just_testing()
Dim mycell As Object
Set mycell = ActiveSheet.Cells(1, 1)
Call Worksheet_Change(mycell)
End Sub
Avec ce code, en changeant la valeur de la cellule A1 à OVER imprimera le message "cellule $ A $ 1 croix OVER" (sensible à la casse!).
Modifier la base de nouvelles informations fournies par OP:
Pour les modifications de feuille de calcul automatique, vous devrez utiliser l'événement Worksheet_Calculate (exemple ci-dessous). Et pour une raison étrange, Excel semble exiger que vous ayez =NOW()
n'importe où dans la feuille de calcul pour Worksheet_Calculate pour réellement déclencher.
Private Sub Worksheet_Calculate()
Dim mycell As Object
Set mycell = ActiveSheet.Cells(1, 1)
If mycell.Value = "OVER" Then
MsgBox "Cell " & mycell.Address & " crosses OVER"
ElseIf mycell.Value = "UNDER" Then
MsgBox "Cell " & mycell.Address & " crosses UNDER"
End If
End Sub
Merci. Cela fonctionne très bien si la cellule est modifiée manuellement de OVER à UNDER ... mais ma feuille est liée à une source de données en direct à l'extérieur. Ainsi, lorsque la formule conditionnelle (ie (a1> b3, "over", "under")) reconnaît que a1 est devenu plus petit que b3 et que la cellule passe de "over" à "under" cette macro ne semble pas fonctionner . Merci. Patrick im: AlphabetPJL – patrick
@patrick: merci pour les informations supplémentaires. J'ai ajouté un autre exemple testé. Faites-moi savoir comment cela fonctionne pour vous. – bernie