Bonjour,
J'ai =E9tabli une macro =E9v=E9nementielle de type "Worksheet_Change" qui
s'active pour toute modification dans une feuille de calcul. Cette
macro A appelle selon les circonstances une autre macro B qui s'active
et modifie en cons=E9quence la m=EAme feuille de calcul. Or, pour tout
changement de la macro B dans ladite feuille de calcul, cela r=E9active
la macro A.
Comment d=E9sactiver momentan=E9ment au sein de la macro B le recours =E0 l=
a
macro A lors de tout changement de la feuille de calcul ?
Merci mille fois.
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
Carim
On Apr 21, 4:49 pm, Versatile wrote:
Bonjour, J'ai établi une macro événementielle de type "Worksheet_Change" qui s'active pour toute modification dans une feuille de calcul. Cette macro A appelle selon les circonstances une autre macro B qui s'active et modifie en conséquence la même feuille de calcul. Or, pour tout changement de la macro B dans ladite feuille de calcul, cela réactive la macro A. Comment désactiver momentanément au sein de la macro B le recours à la macro A lors de tout changement de la feuille de calcul ? Merci mille fois.
La solution la plus simple est d'avoir, dans un coin, un "drapeau" ... c-à-d une cellule qui prend la valeur 0 ou 1 ... qui te permet un test dans ta macro ... activée ou pas ...
A +
On Apr 21, 4:49 pm, Versatile <courrier.pe...@gmail.com> wrote:
Bonjour,
J'ai établi une macro événementielle de type "Worksheet_Change" qui
s'active pour toute modification dans une feuille de calcul. Cette
macro A appelle selon les circonstances une autre macro B qui s'active
et modifie en conséquence la même feuille de calcul. Or, pour tout
changement de la macro B dans ladite feuille de calcul, cela réactive
la macro A.
Comment désactiver momentanément au sein de la macro B le recours à la
macro A lors de tout changement de la feuille de calcul ?
Merci mille fois.
La solution la plus simple est d'avoir, dans un coin, un "drapeau" ...
c-à-d une cellule qui prend la valeur 0 ou 1 ... qui te permet un test
dans
ta macro ... activée ou pas ...
Bonjour, J'ai établi une macro événementielle de type "Worksheet_Change" qui s'active pour toute modification dans une feuille de calcul. Cette macro A appelle selon les circonstances une autre macro B qui s'active et modifie en conséquence la même feuille de calcul. Or, pour tout changement de la macro B dans ladite feuille de calcul, cela réactive la macro A. Comment désactiver momentanément au sein de la macro B le recours à la macro A lors de tout changement de la feuille de calcul ? Merci mille fois.
La solution la plus simple est d'avoir, dans un coin, un "drapeau" ... c-à-d une cellule qui prend la valeur 0 ou 1 ... qui te permet un test dans ta macro ... activée ou pas ...
A +
Daniel.C
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Bonjour, J'ai établi une macro événementielle de type "Worksheet_Change" qui s'active pour toute modification dans une feuille de calcul. Cette macro A appelle selon les circonstances une autre macro B qui s'active et modifie en conséquence la même feuille de calcul. Or, pour tout changement de la macro B dans ladite feuille de calcul, cela réactive la macro A. Comment désactiver momentanément au sein de la macro B le recours à la macro A lors de tout changement de la feuille de calcul ? Merci mille fois.
Bonjour.
En tête de la macro B, mets :
Application.EnableEvents = False
et à la fin :
Application.EnableEvents = True
Cordialement.
Daniel
Bonjour,
J'ai établi une macro événementielle de type "Worksheet_Change" qui
s'active pour toute modification dans une feuille de calcul. Cette
macro A appelle selon les circonstances une autre macro B qui s'active
et modifie en conséquence la même feuille de calcul. Or, pour tout
changement de la macro B dans ladite feuille de calcul, cela réactive
la macro A.
Comment désactiver momentanément au sein de la macro B le recours à la
macro A lors de tout changement de la feuille de calcul ?
Merci mille fois.
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Bonjour, J'ai établi une macro événementielle de type "Worksheet_Change" qui s'active pour toute modification dans une feuille de calcul. Cette macro A appelle selon les circonstances une autre macro B qui s'active et modifie en conséquence la même feuille de calcul. Or, pour tout changement de la macro B dans ladite feuille de calcul, cela réactive la macro A. Comment désactiver momentanément au sein de la macro B le recours à la macro A lors de tout changement de la feuille de calcul ? Merci mille fois.
Versatile
On 21 avr, 17:05, Carim wrote:
On Apr 21, 4:49 pm, Versatile wrote:
> Bonjour, > J'ai établi une macro événementielle de type "Worksheet_Change" q ui > s'active pour toute modification dans une feuille de calcul. Cette > macro A appelle selon les circonstances une autre macro B qui s'active > et modifie en conséquence la même feuille de calcul. Or, pour tout > changement de la macro B dans ladite feuille de calcul, cela réactive > la macro A. > Comment désactiver momentanément au sein de la macro B le recours à la > macro A lors de tout changement de la feuille de calcul ? > Merci mille fois.
La solution la plus simple est d'avoir, dans un coin, un "drapeau" ... c-à-d une cellule qui prend la valeur 0 ou 1 ... qui te permet un test dans ta macro ... activée ou pas ...
A +
Oui, c'est ce que j'ai fait. Mais je ne trouve pas cela très élégant. Et cela bouffe des ressources car la macro A s'active quand même, même si grâce au 0 ou au 1 elle ne fait rien. Merci quand même !
On 21 avr, 17:05, Carim <carim...@yahoo.com> wrote:
On Apr 21, 4:49 pm, Versatile <courrier.pe...@gmail.com> wrote:
> Bonjour,
> J'ai établi une macro événementielle de type "Worksheet_Change" q ui
> s'active pour toute modification dans une feuille de calcul. Cette
> macro A appelle selon les circonstances une autre macro B qui s'active
> et modifie en conséquence la même feuille de calcul. Or, pour tout
> changement de la macro B dans ladite feuille de calcul, cela réactive
> la macro A.
> Comment désactiver momentanément au sein de la macro B le recours à la
> macro A lors de tout changement de la feuille de calcul ?
> Merci mille fois.
La solution la plus simple est d'avoir, dans un coin, un "drapeau" ...
c-à-d une cellule qui prend la valeur 0 ou 1 ... qui te permet un test
dans
ta macro ... activée ou pas ...
A +
Oui, c'est ce que j'ai fait. Mais je ne trouve pas cela très élégant.
Et cela bouffe des ressources car la macro A s'active quand même, même
si grâce au 0 ou au 1 elle ne fait rien.
Merci quand même !
> Bonjour, > J'ai établi une macro événementielle de type "Worksheet_Change" q ui > s'active pour toute modification dans une feuille de calcul. Cette > macro A appelle selon les circonstances une autre macro B qui s'active > et modifie en conséquence la même feuille de calcul. Or, pour tout > changement de la macro B dans ladite feuille de calcul, cela réactive > la macro A. > Comment désactiver momentanément au sein de la macro B le recours à la > macro A lors de tout changement de la feuille de calcul ? > Merci mille fois.
La solution la plus simple est d'avoir, dans un coin, un "drapeau" ... c-à-d une cellule qui prend la valeur 0 ou 1 ... qui te permet un test dans ta macro ... activée ou pas ...
A +
Oui, c'est ce que j'ai fait. Mais je ne trouve pas cela très élégant. Et cela bouffe des ressources car la macro A s'active quand même, même si grâce au 0 ou au 1 elle ne fait rien. Merci quand même !
Versatile
On 21 avr, 17:16, Daniel.C wrote:
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
On 21 avr, 17:16, Daniel.C <dcolardelle...@gmail.com> wrote:
Bonjour.
En tête de la macro B, mets :
Application.EnableEvents = False
et à la fin :
Application.EnableEvents = True
Cordialement.
Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
JCB D'ARMENTIERE
On Tue, 21 Apr 2009 09:26:36 -0700 (PDT), Versatile wrote:
On 21 avr, 17:16, Daniel.C wrote:
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Attention toutefois, chez moi j'ai du mettre la ligne a true dès le debut du code car en cas de plantage au moment où c'est a false, ca reste a false tant qu'il ne trouve pas de true ou reouverture de excel/classeur (je sais plus lequel)
On 21 avr, 17:16, Daniel.C <dcolardelle...@gmail.com> wrote:
Bonjour.
En tête de la macro B, mets :
Application.EnableEvents = False
et à la fin :
Application.EnableEvents = True
Cordialement.
Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Attention toutefois, chez moi j'ai du mettre la ligne a true dès le
debut du code car en cas de plantage au moment où c'est a false, ca
reste a false tant qu'il ne trouve pas de true ou reouverture de
excel/classeur (je sais plus lequel)
On Tue, 21 Apr 2009 09:26:36 -0700 (PDT), Versatile wrote:
On 21 avr, 17:16, Daniel.C wrote:
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Attention toutefois, chez moi j'ai du mettre la ligne a true dès le debut du code car en cas de plantage au moment où c'est a false, ca reste a false tant qu'il ne trouve pas de true ou reouverture de excel/classeur (je sais plus lequel)
Daniel.C
Exact. Une bonne pratique consiste à écrire :
Sub test() On Error GoTo Fin Application.EnableEvents = False '... 'code '... Fin: If Err.Number <> 0 Then MsgBox "Erreur : " & Err.Number Err.Clear End If Application.EnableEvents = True End Sub
Daniel
On Tue, 21 Apr 2009 09:26:36 -0700 (PDT), Versatile wrote:
On 21 avr, 17:16, Daniel.C wrote:
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Attention toutefois, chez moi j'ai du mettre la ligne a true dès le debut du code car en cas de plantage au moment où c'est a false, ca reste a false tant qu'il ne trouve pas de true ou reouverture de excel/classeur (je sais plus lequel)
Exact. Une bonne pratique consiste à écrire :
Sub test()
On Error GoTo Fin
Application.EnableEvents = False
'...
'code
'...
Fin:
If Err.Number <> 0 Then
MsgBox "Erreur : " & Err.Number
Err.Clear
End If
Application.EnableEvents = True
End Sub
On 21 avr, 17:16, Daniel.C <dcolardelle...@gmail.com> wrote:
Bonjour.
En tête de la macro B, mets :
Application.EnableEvents = False
et à la fin :
Application.EnableEvents = True
Cordialement.
Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Attention toutefois, chez moi j'ai du mettre la ligne a true dès le
debut du code car en cas de plantage au moment où c'est a false, ca
reste a false tant qu'il ne trouve pas de true ou reouverture de
excel/classeur (je sais plus lequel)
Sub test() On Error GoTo Fin Application.EnableEvents = False '... 'code '... Fin: If Err.Number <> 0 Then MsgBox "Erreur : " & Err.Number Err.Clear End If Application.EnableEvents = True End Sub
Daniel
On Tue, 21 Apr 2009 09:26:36 -0700 (PDT), Versatile wrote:
On 21 avr, 17:16, Daniel.C wrote:
Bonjour. En tête de la macro B, mets : Application.EnableEvents = False et à la fin : Application.EnableEvents = True Cordialement. Daniel
Ah ok, je savais que cela existait. Ça marche, merci !
Attention toutefois, chez moi j'ai du mettre la ligne a true dès le debut du code car en cas de plantage au moment où c'est a false, ca reste a false tant qu'il ne trouve pas de true ou reouverture de excel/classeur (je sais plus lequel)