Je voudrais faire executer automatiquement une macro dans=20
Excel, quand la cellule "B1" de la feuil2 passe de 0 =E0 1.
Cette cellule est remplie automatiquement par une autre=20
application au moyen d'un lien DDE.
La cellule B1 contient =3DPCDDE|Automate!'%MF8000'
Le code ci-dessous ne donne pas satisfaction:
bien que sur la feuille2 la cellule B1 passe de 0 =E0 1 la=20
macro n'est pas execut=E9e.
Si la cellule B1 est chang=E9e manuellement au clavier en=20
enlevant la formule, le fonctionnement est correct.
Y-a-t-il une incompatibilit=E9 avec le lien DDE?
Si oui lequel et que faire?
Private Sub Worksheet_Change(ByVal Target As Range)
=20
If Feuil2.Range("B1").Value =3D 0 Then
If x =3D True Then
x =3D False
'remet =E0 0 le flag
End If
Else
If x =3D False Then
x =3D True
'le flag indique que la macro a =E9t=E9 ex=E9cut=E9e
Call Macro3
End If
End If
=20
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frédéric Sigonneau
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
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
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