Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

démarrer une macro si un nouveau chiffre est saisi en E7 de la F eu

4 réponses
Avatar
jean-Paul
Bonjour à tous j’ai récupéré ( et modifié ) ces lignes de code ( à copier
dans this worbook ) pour pouvoir démarrer la macro zaza, lorsque je saisi en
E7 un nouveau chiffre, ça marche ; mais j’obtiens ultérieurement des
interférences avec une autre macro qui doit écrire dans une autre feuille en
E7 :

Comment limiter l’action de cette instruction à la 1ère feuille du classeur ?


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Application.Intersect(Target, Range("E7")) Is Nothing Then End
zaza
End Sub

--
Merci d'avance
jps

4 réponses

Avatar
Poulpor
Bonjour Jean-Paul,

Ceci m'est déjà arriver dans un fichier où j'avais du code évènementiel qui
n'arrêtait pas de tourner.

voici ma solution :

J'ai créé une variable publique bouléene (vrai-faux); et j'ai modifié mes
codes évenementiels pour qu'à chaque fois, j'ai :
Private sub()
if totoúlse then
... moncode ...
end if
end sub

Evidemment, quand je fais tourner ma macro prinicpale et que je ne veux pas
faire tourner les codes evenementiels, je dois ajouter le code toto=true

je ne crois pas que cette solution ait de la classe, mais ca a le mérite de
marcher.

N'oublie pas de déclarer la variable en public (Public toto As Boolean) pour
ne pas avoir à gérer les déclarations de cette dernière

poulpor



Bonjour à tous j’ai récupéré ( et modifié ) ces lignes de code ( à copier
dans this worbook ) pour pouvoir démarrer la macro zaza, lorsque je saisi en
E7 un nouveau chiffre, ça marche ; mais j’obtiens ultérieurement des
interférences avec une autre macro qui doit écrire dans une autre feuille en
E7 :

Comment limiter l’action de cette instruction à la 1ère feuille du classeur ?


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Application.Intersect(Target, Range("E7")) Is Nothing Then End
zaza
End Sub

--
Merci d'avance
jps


Avatar
Mima
Bonjour

Il faut déactiver les actions évenementielles durant le déroulement de la
macro


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False '------> Fige l'écran mais pas
les évenements

Application.EnableEventsúlse '------> Déactive les évenements

If Application.Intersect(Target, Range("E7")) Is Nothing Then GOTO 1
'------>Renvoi à la ligne de commande de réactivation
zaza
1: Application.EnableEvents=True '------> Attention ! Penser à réactiver
la gestion des évenements avant l'arret de la macro.
End Sub


"jean-Paul" a écrit dans le message de
news:
Bonjour à tous j’ai récupéré ( et modifié ) ces lignes de code ( à copier
dans this worbook ) pour pouvoir démarrer la macro zaza, lorsque je saisi
en
E7 un nouveau chiffre, ça marche ; mais j’obtiens ultérieurement des
interférences avec une autre macro qui doit écrire dans une autre feuille
en
E7 :

Comment limiter l’action de cette instruction à la 1ère feuille du
classeur ?


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Application.Intersect(Target, Range("E7")) Is Nothing Then End
zaza
End Sub

--
Merci d'avance
jps


Avatar
jean-Paul
Merci pour ces renseignements, malgré l'utilisation de ce code j'avais
encore des interférences, ( et pour cause je me suis apperçu que ce n'est pas
cette macro qui était gènée par l'autre, c'est elle qui interférait sur
l'autre ( une fonction dans this workbook étant semble-t-il applicable à
toutes les feuilles , ) ) j'ai donc repris le problème à l'anvers et j'ai
mis "Application.EnableEventsúlse" au début de la macro qui était en
dérangée ! et ça marche ! Encore un grand Merci pour ton aide !!!!
--
jps



Bonjour

Il faut déactiver les actions évenementielles durant le déroulement de la
macro


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False '------> Fige l'écran mais pas
les évenements

Application.EnableEventsúlse '------> Déactive les évenements

If Application.Intersect(Target, Range("E7")) Is Nothing Then GOTO 1
'------>Renvoi à la ligne de commande de réactivation
zaza
1: Application.EnableEvents=True '------> Attention ! Penser à réactiver
la gestion des évenements avant l'arret de la macro.
End Sub


"jean-Paul" a écrit dans le message de
news:
Bonjour à tous j’ai récupéré ( et modifié ) ces lignes de code ( à copier
dans this worbook ) pour pouvoir démarrer la macro zaza, lorsque je saisi
en
E7 un nouveau chiffre, ça marche ; mais j’obtiens ultérieurement des
interférences avec une autre macro qui doit écrire dans une autre feuille
en
E7 :

Comment limiter l’action de cette instruction à la 1ère feuille du
classeur ?


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Application.Intersect(Target, Range("E7")) Is Nothing Then End
zaza
End Sub

--
Merci d'avance
jps






Avatar
jean-Paul
Attention il semble que ce code d'activation désactivation des évennement
placé en this worbook empeche de travailler sur le classeur avec plantage du
classeur avec de simles copier coller ! ( à réintaller à la fin ?)
--
jps



Merci pour ces renseignements, malgré l'utilisation de ce code j'avais
encore des interférences, ( et pour cause je me suis apperçu que ce n'est pas
cette macro qui était gènée par l'autre, c'est elle qui interférait sur
l'autre ( une fonction dans this workbook étant semble-t-il applicable à
toutes les feuilles , ) ) j'ai donc repris le problème à l'anvers et j'ai
mis "Application.EnableEventsúlse" au début de la macro qui était en
dérangée ! et ça marche ! Encore un grand Merci pour ton aide !!!!
--
jps



Bonjour

Il faut déactiver les actions évenementielles durant le déroulement de la
macro


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False '------> Fige l'écran mais pas
les évenements

Application.EnableEventsúlse '------> Déactive les évenements

If Application.Intersect(Target, Range("E7")) Is Nothing Then GOTO 1
'------>Renvoi à la ligne de commande de réactivation
zaza
1: Application.EnableEvents=True '------> Attention ! Penser à réactiver
la gestion des évenements avant l'arret de la macro.
End Sub


"jean-Paul" a écrit dans le message de
news:
Bonjour à tous j’ai récupéré ( et modifié ) ces lignes de code ( à copier
dans this worbook ) pour pouvoir démarrer la macro zaza, lorsque je saisi
en
E7 un nouveau chiffre, ça marche ; mais j’obtiens ultérieurement des
interférences avec une autre macro qui doit écrire dans une autre feuille
en
E7 :

Comment limiter l’action de cette instruction à la 1ère feuille du
classeur ?


Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Application.ScreenUpdating = False
If Application.Intersect(Target, Range("E7")) Is Nothing Then End
zaza
End Sub

--
Merci d'avance
jps