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

Probleme avec Private Sub WorkSheet_Calculate()

7 réponses
Avatar
Patcas
Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça donne
pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.

7 réponses

Avatar
LSteph
Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon les
diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça donne
pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.




Avatar
Patcas
Merci pour les explications
A 58 ans c'est pas evident mais la volonté de ne pas mourir idiot me
pousse....à vous embeter...

Voilà ce que j'ai ecrit et qui fonctionne comme je le veux

Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 1

Else

If [a4].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 2

End If
End If
fin:
Application.EnableEvents = True
End Sub

Merci encore et bon dimanche

Patrice C.








"LSteph" a écrit dans le message de news:

Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon les
diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de
code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça donne
pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.





Avatar
LSteph
..dans ce cas attention
A4 ne sera pris en compte que si a6
est différent de 1

Ton code pourrait s'écrire plus simplement ainsi

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then
ACTION 2
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''


Explication:
Application.EnableEvents = False
désactive les évennements pourprévenir de tout recalcul qui
redéclancherait sans fin la procédure
aussi
On error goto fin renvoie à l'etiquette fin:
en cas d'erreur la dernière instruction
Application.EnableEvents = True
sera executée avant la sortie
pour réactiver les évennements si on plante.

Cordialement.

lSteph

Merci pour les explications
A 58 ans c'est pas evident mais la volonté de ne pas mourir idiot me
pousse....à vous embeter...

Voilà ce que j'ai ecrit et qui fonctionne comme je le veux

Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 1

Else

If [a4].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 2

End If
End If
fin:
Application.EnableEvents = True
End Sub

Merci encore et bon dimanche

Patrice C.








"LSteph" a écrit dans le message de news:

Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon les
diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de
code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça donne
pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.








Avatar
LSteph
.. petit raté en recopiant

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then ACTION 2
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

ou

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then
ACTION 2
End If
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

Merci pour les explications
A 58 ans c'est pas evident mais la volonté de ne pas mourir idiot me
pousse....à vous embeter...

Voilà ce que j'ai ecrit et qui fonctionne comme je le veux

Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 1

Else

If [a4].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 2

End If
End If
fin:
Application.EnableEvents = True
End Sub

Merci encore et bon dimanche

Patrice C.








"LSteph" a écrit dans le message de news:

Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon les
diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de
code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça donne
pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.








Avatar
Patcas
merci encore pour toutes tes explications
Mais effectivement les 2 cellules ne seront jamais a 1 en meme temps
Par contre est ce un probleme si j'ai ecrit:
"
Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False
ACTION 1
"
alors que toi tu ecris
"
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
"
L'ordre des lignes d'ecriture est-il important?

Bonne soirée

Patrice C.




"LSteph" a écrit dans le message de news:
OCI1Hw%
.. petit raté en recopiant

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then ACTION 2
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

ou

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then
ACTION 2
End If
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

Merci pour les explications
A 58 ans c'est pas evident mais la volonté de ne pas mourir idiot me
pousse....à vous embeter...

Voilà ce que j'ai ecrit et qui fonctionne comme je le veux

Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 1

Else

If [a4].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 2

End If
End If
fin:
Application.EnableEvents = True
End Sub

Merci encore et bon dimanche

Patrice C.








"LSteph" a écrit dans le message de news:

Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon les
diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub
WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de
code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça
donne pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.










Avatar
LSteph
L'ordre des lignes d'ecriture est-il important?



d'une façon générale absolument,en VBA
les instructions sont executées consécutivement.
Selon le code tu peux en déduire le degré d'importance
dans notre cas guère .



merci encore pour toutes tes explications
Mais effectivement les 2 cellules ne seront jamais a 1 en meme temps
Par contre est ce un probleme si j'ai ecrit:
"
Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False
ACTION 1
"
alors que toi tu ecris
"
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
"
L'ordre des lignes d'ecriture est-il important?

Bonne soirée

Patrice C.




"LSteph" a écrit dans le message de news:
OCI1Hw%
.. petit raté en recopiant

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then ACTION 2
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

ou

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then
ACTION 2
End If
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

Merci pour les explications
A 58 ans c'est pas evident mais la volonté de ne pas mourir idiot me
pousse....à vous embeter...

Voilà ce que j'ai ecrit et qui fonctionne comme je le veux

Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 1

Else

If [a4].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 2

End If
End If
fin:
Application.EnableEvents = True
End Sub

Merci encore et bon dimanche

Patrice C.








"LSteph" a écrit dans le message de news:

Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon les
diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub
WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page de
code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça
donne pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.













Avatar
Patcas
Merci pôur tout


"LSteph" a écrit dans le message de news:
uD%
L'ordre des lignes d'ecriture est-il important?



d'une façon générale absolument,en VBA
les instructions sont executées consécutivement.
Selon le code tu peux en déduire le degré d'importance
dans notre cas guère .



merci encore pour toutes tes explications
Mais effectivement les 2 cellules ne seront jamais a 1 en meme temps
Par contre est ce un probleme si j'ai ecrit:
"
Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False
ACTION 1
"
alors que toi tu ecris
"
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
"
L'ordre des lignes d'ecriture est-il important?

Bonne soirée

Patrice C.




"LSteph" a écrit dans le message de news:
OCI1Hw%
.. petit raté en recopiant

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then ACTION 2
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

ou

''''''''''''''''
Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
ACTION 1
Else
If [a4].Value = 1 Then
ACTION 2
End If
End If
fin:
Application.EnableEvents = True
End Sub
''''''''''''''''''

Merci pour les explications
A 58 ans c'est pas evident mais la volonté de ne pas mourir idiot me
pousse....à vous embeter...

Voilà ce que j'ai ecrit et qui fonctionne comme je le veux

Private Sub WorkSheet_Calculate()
If [a6].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 1

Else

If [a4].Value = 1 Then
On Error GoTo fin
Application.EnableEvents = False

ACTION 2

End If
End If
fin:
Application.EnableEvents = True
End Sub

Merci encore et bon dimanche

Patrice C.








"LSteph" a écrit dans le message de news:

Bonjour,
tu dois écrire un seul

Private Sub WorkSheet_Calculate()

c'est l'action liée à l'évennement Calculate de Worksheet

lorsqu'il se produit tu peux y en visager les diverses actions selon
les diverses condition
soit avec if soit avec select case s'il y a nombre de conditions.

Private Sub WorkSheet_Calculate()
On Error GoTo fin
Application.EnableEvents = False
If [a6].Value = 1 Then
msgbox "blabli"
else
msgbox "blabla"
end if
If [a4].value = 1 Then msgbox "bonjour"
fin:
Application.EnableEvents = true
End sub


Si tu souhaites lier à l'action de modifier une cellule
(par l'utilisateur et pas le calcul)
tu peux utiliser (voir déroulant en haut à droite du module)
l'évennement change
dans ce cas l'action peut être ciblée ainsi avec target, voir nombreux
exemples dans le forum.

Cordialement.

lSteph



Bonjour

j'ai un probleme dont je ne trouve pas la solution

j'ai dans le code de ma page un premier Private Sub
WorkSheet_Calculate()
qui me rajoute une ligne ds mon tableau quand A6=1

Private Sub WorkSheet_Calculate()
If [a6].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

J'ai un second Private Sub WorkSheet_Calculate()
qui me copie une feuille modele quand A4=1

Private Sub WorkSheet_Calculate()
If [a4].Value <> 1 Then Exit Sub
On Error GoTo fin
Application.EnableEvents = False

BLA BLA

Application.EnableEvents = True
ActiveWorkbook.Save
fin:
End Sub

Les 2 fonctionnent super bien quand je les ecris seules dans ma page
de code
mais quand je mets les 2, seule celle qui est en premier fonctionne.
J'ai essayé de les ecrire en les separant, de les imbriquer mais ça
donne pas le resultat escompté.

Petite explication
A4 et A6 contiennent des formules
A6 passe à 2 quand la ligne s'est ajoutée
à partir de ce moment A4 peut passer à 1 mais ce n'est pas
obligatoire

Merci pour votre aide

Bon dimanche

Patrice C.