-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
-----Message d'origine-----
Bonjour,
L'événement change la valeur d'une cellule qui provoque
un nouvel événement qui
change la valeur d'une cellule qui...
Donc boucle sans fin.
Solution: Mettre Application.EnableEvents = False avant
de changer la valeur et
le remettre ensuite à True.
Donc:
Private Sub worksheet_change(ByVal target As Excel.Range)
Application.EnableEvents = False
Range("a1").Value = Range("a1").Value + 1
Application.EnableEvents = True
End Sub
Salutations,
Daniel M.
"Chris MICHEL"
wrote in message
news:07bb01c3d909$100211d0$
J'ai découvert il y a peu le code permettant de lancer des
macros automatiquement à chaque modif d'un feuille donnée.
Je faisais quelques tests et je suis tombé sur un truc que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
-----Message d'origine-----
Bonjour,
L'événement change la valeur d'une cellule qui provoque
un nouvel événement qui
change la valeur d'une cellule qui...
Donc boucle sans fin.
Solution: Mettre Application.EnableEvents = False avant
de changer la valeur et
le remettre ensuite à True.
Donc:
Private Sub worksheet_change(ByVal target As Excel.Range)
Application.EnableEvents = False
Range("a1").Value = Range("a1").Value + 1
Application.EnableEvents = True
End Sub
Salutations,
Daniel M.
"Chris MICHEL" <anonymous@discussions.microsoft.com>
wrote in message
news:07bb01c3d909$100211d0$a301280a@phx.gbl...
J'ai découvert il y a peu le code permettant de lancer des
macros automatiquement à chaque modif d'un feuille donnée.
Je faisais quelques tests et je suis tombé sur un truc que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
-----Message d'origine-----
Bonjour,
L'événement change la valeur d'une cellule qui provoque
un nouvel événement qui
change la valeur d'une cellule qui...
Donc boucle sans fin.
Solution: Mettre Application.EnableEvents = False avant
de changer la valeur et
le remettre ensuite à True.
Donc:
Private Sub worksheet_change(ByVal target As Excel.Range)
Application.EnableEvents = False
Range("a1").Value = Range("a1").Value + 1
Application.EnableEvents = True
End Sub
Salutations,
Daniel M.
"Chris MICHEL"
wrote in message
news:07bb01c3d909$100211d0$
J'ai découvert il y a peu le code permettant de lancer des
macros automatiquement à chaque modif d'un feuille donnée.
Je faisais quelques tests et je suis tombé sur un truc que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
-----Message d'origine-----
Voici ce qu'en dit Laurent Longpré :
http://longre.free.fr/pages/prog/evenements.htm
Comme les procédures événementielles sont déclenchées de
manière automatique
non seulement par les actions effectuées par les
utilisateurs, mais aussi
par les actions déclenchées par macro, l'instruction
Target.Offset(0,1) =
TypeName(Target) provoque en effet un appel récursif de
la procédure
Workbook_Sheet_Change, qui s'appelle elle-même jusqu'à ce
qu'une erreur soit
rencontrée ou alors que la mémoire réservée à la pile
d'appel soit épuisée.
Pour éviter cet appel récursif, il est nécessaire de
désactiver
temporairement le déclenchement automatique des
procédures événementielles
avant l'instruction susceptible de provoquer un appel
récursif, et de le
réactiver ensuite :
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = TypeName(Target.Value)
Application.EnableEvents = True
End Sub
"Chris MICHEL"
wrote in message
news:08f501c3d913$b630e6d0$
salut Camille,
Suite à ton message, j'ai essayé avec l'option cochée et
décochée mais ça n'a rien changé.
le mystère reste donc entier.
Merci quand même.-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
etde la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
.
-----Message d'origine-----
Voici ce qu'en dit Laurent Longpré :
http://longre.free.fr/pages/prog/evenements.htm
Comme les procédures événementielles sont déclenchées de
manière automatique
non seulement par les actions effectuées par les
utilisateurs, mais aussi
par les actions déclenchées par macro, l'instruction
Target.Offset(0,1) =
TypeName(Target) provoque en effet un appel récursif de
la procédure
Workbook_Sheet_Change, qui s'appelle elle-même jusqu'à ce
qu'une erreur soit
rencontrée ou alors que la mémoire réservée à la pile
d'appel soit épuisée.
Pour éviter cet appel récursif, il est nécessaire de
désactiver
temporairement le déclenchement automatique des
procédures événementielles
avant l'instruction susceptible de provoquer un appel
récursif, et de le
réactiver ensuite :
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = TypeName(Target.Value)
Application.EnableEvents = True
End Sub
"Chris MICHEL" <anonymous@discussions.microsoft.com>
wrote in message
news:08f501c3d913$b630e6d0$a301280a@phx.gbl...
salut Camille,
Suite à ton message, j'ai essayé avec l'option cochée et
décochée mais ça n'a rien changé.
le mystère reste donc entier.
Merci quand même.
-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
et
de la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille
-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
des
macros automatiquement à chaque modif d'un feuille
donnée.
Je faisais quelques tests et je suis tombé sur un truc
que
je ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
est
logiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin
(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
.
-----Message d'origine-----
Voici ce qu'en dit Laurent Longpré :
http://longre.free.fr/pages/prog/evenements.htm
Comme les procédures événementielles sont déclenchées de
manière automatique
non seulement par les actions effectuées par les
utilisateurs, mais aussi
par les actions déclenchées par macro, l'instruction
Target.Offset(0,1) =
TypeName(Target) provoque en effet un appel récursif de
la procédure
Workbook_Sheet_Change, qui s'appelle elle-même jusqu'à ce
qu'une erreur soit
rencontrée ou alors que la mémoire réservée à la pile
d'appel soit épuisée.
Pour éviter cet appel récursif, il est nécessaire de
désactiver
temporairement le déclenchement automatique des
procédures événementielles
avant l'instruction susceptible de provoquer un appel
récursif, et de le
réactiver ensuite :
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = TypeName(Target.Value)
Application.EnableEvents = True
End Sub
"Chris MICHEL"
wrote in message
news:08f501c3d913$b630e6d0$
salut Camille,
Suite à ton message, j'ai essayé avec l'option cochée et
décochée mais ça n'a rien changé.
le mystère reste donc entier.
Merci quand même.-----Message d'origine-----
Bonjour,
A priori cela vient du menu Outils/Options/Modification
etde la décimale fixe à décocher. Le pourquoi je n'en sait
rien ma foi.
Camille-----Message d'origine-----
J'ai découvert il y a peu le code permettant de lancer
desmacros automatiquement à chaque modif d'un feuille
donnée.Je faisais quelques tests et je suis tombé sur un truc
queje ne comprends pas. Je précise que je bosse sous Excel
97.
quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a1").Value = Range("a1").Value + 1
End Sub
A1 est incrémentée de 336 (?!) à chaque fois que je
modifie la feuille
quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a2").Value = Range("a2").Value & "test"
End Sub
A2 est incrémentée de 336 fois "test" (jusque là, tout
estlogiqueau moins)
mais quand je tape:
Private Sub worksheet_change(ByVal target As
Excel.Range)
Range("a1").Value = Range("a1").Value + 1
Range("a2").Value = Range("a2").Value & "test"
End Sub
on voit A1 et A2 devenir dingues et s'incrémenter sans
fin(enfin, je sais pas s'il y a une fin, je craque vers
10000)
qqun peut-il m'expliquer pourquoi?
.
.
.
Par contre, pourquoi s'arrète-t'il à 336 itérations dans
un cas et ne s'arrète-t'il pas dans l'autre cas?
Par contre, pourquoi s'arrète-t'il à 336 itérations dans
un cas et ne s'arrète-t'il pas dans l'autre cas?
Par contre, pourquoi s'arrète-t'il à 336 itérations dans
un cas et ne s'arrète-t'il pas dans l'autre cas?
Hello,Par contre, pourquoi s'arrète-t'il à 336 itérations dans
un cas et ne s'arrète-t'il pas dans l'autre cas?
Je ne sais pas. Peut-être des détails internes d'implantation de l'espace
'stack'.
Je suis sûr que, dans le dernier cas, ça va finir par arrêter (et
peut-être pas
d'une façon élégante ;-))
Salutations,
Daniel M.
Hello,
Par contre, pourquoi s'arrète-t'il à 336 itérations dans
un cas et ne s'arrète-t'il pas dans l'autre cas?
Je ne sais pas. Peut-être des détails internes d'implantation de l'espace
'stack'.
Je suis sûr que, dans le dernier cas, ça va finir par arrêter (et
peut-être pas
d'une façon élégante ;-))
Salutations,
Daniel M.
Hello,Par contre, pourquoi s'arrète-t'il à 336 itérations dans
un cas et ne s'arrète-t'il pas dans l'autre cas?
Je ne sais pas. Peut-être des détails internes d'implantation de l'espace
'stack'.
Je suis sûr que, dans le dernier cas, ça va finir par arrêter (et
peut-être pas
d'une façon élégante ;-))
Salutations,
Daniel M.