Lancement automatique de macro

Le
J.M.Evrard
Bonjour,

Je voudrais faire executer automatiquement une macro dans
Excel, quand la cellule "B1" de la feuil2 passe de 0 1.
Cette cellule est remplie automatiquement par une autre
application au moyen d'un lien DDE.
La cellule B1 contient =PCDDE|Automate!'%MF8000'

Le code ci-dessous ne donne pas satisfaction:
bien que sur la feuille2 la cellule B1 passe de 0 1 la
macro n'est pas execute.
Si la cellule B1 est change manuellement au clavier en
enlevant la formule, le fonctionnement est correct.

Y-a-t-il une incompatibilit avec le lien DDE?
Si oui lequel et que faire?

Private Sub Worksheet_Change(ByVal Target As Range)

If Feuil2.Range("B1").Value = 0 Then
If x = True Then
x = False
'remet 0 le flag
End If
Else
If x = False Then
x = True
'le flag indique que la macro a t excute
Call Macro3
End If
End If

End Sub


Merci pour votre aide

Jean-Marc
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Frédéric Sigonneau
Le #362863
Bonjour,

Le changement de valeur d'une formule ne déclenche pas l'événement Change.
Utilise plutôt l'événement Calculate.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

J.M.Evrard a écrit:
Bonjour,

Je voudrais faire executer automatiquement une macro dans
Excel, quand la cellule "B1" de la feuil2 passe de 0 à 1.
Cette cellule est remplie automatiquement par une autre
application au moyen d'un lien DDE.
La cellule B1 contient =PCDDE|Automate!'%MF8000'

Le code ci-dessous ne donne pas satisfaction:
bien que sur la feuille2 la cellule B1 passe de 0 à 1 la
macro n'est pas executée.
Si la cellule B1 est changée manuellement au clavier en
enlevant la formule, le fonctionnement est correct.

Y-a-t-il une incompatibilité avec le lien DDE?
Si oui lequel et que faire?

Private Sub Worksheet_Change(ByVal Target As Range)

If Feuil2.Range("B1").Value = 0 Then
If x = True Then
x = False
'remet à 0 le flag
End If
Else
If x = False Then
x = True
'le flag indique que la macro a été exécutée
Call Macro3
End If
End If

End Sub


Merci pour votre aide

Jean-Marc


Publicité
Poster une réponse
Anonyme