Impossible de "Call" ma macro qui fonctionne

Bonjour a tous,

Je me permets de poster pour la premiere fois sur ce forum car je suis en train de developper un fichier excel pour mon entreprise me permettant de rentrer des matieres premieres dans une feuille (Ingredients) et de creer des recettes dans les autres feuilles permettant automatiquement de calculer le cout de revient de chaque recette. Jusqu'a maintenant tout fonctionne, cependant pour eviter d'avoir trop de boutons manuelles "Refresh Price" (Me permettant d'actualiser les prix a chaque modification), j'ai decide de Call cette macro lorsque Excel detecte une modification dans ma feuille :

Private Sub Worksheet_Change(ByVal Target as Range) Call GeneralPriceEnd Sub

Cependant lorsque je rentre cette ligne ma macro entiere arrete de fonctionner (Obliger de supprimer et de redemarrer mon fichier pour que ma macro fonctionne de nouveau)

Je vous transmets le fichier en piece jointe contenant la totalite

Merci d'avance pour votre reponse

PS : Je m'excuse pour l'ensemble des accents manquants je suis sur un clavier Qwerty...

12test-4.xlsm (52.02 Ko)

bonjour Guguste, il faut temporairement blocquer les evenements (autrement, vous êtes dans un circle vicieux de changement - event - changement - event - ...)

Private Sub Worksheet_Change(ByVal Target As Range)
     Application.EnableEvents = False
     GeneralPrice
     Application.EnableEvents = True
End Sub

Merci beaucoup!!

C'etait exactement ce que je cherchais.

Serait-il trop vous demander de m'expliquer ce que permet de bloquer les evenements?

Cordialement,

re,

au moment où vous changez quelque chose dans cette feuille, cette macro "Private Sub Worksheet_Change(ByVal Target As Range)" est lancée et la première chose qu'elle fait, c'est bloquer les évenements avec "Application.EnableEvents = False", puis elle fait un call vers "GeneralPrice". Mais ce qui est vraiment important, c'est de réactiver les evenements avec "Application.EnableEvents = True", en revenant vers "Worksheet_Change", autrement il ne se passe plus rien. Cela est important, par exemple, si vous arrêtez la macro manuellement ou elle s'arrête après une erreur.

Si vous voyez que votre fichier ne fait plus ce que vous souhaitez, vous pouvez aussi ajouter et lancer une macro comme ceci

Sub Eon()
     Application.EnableEvents = True
End Sub

Merci beaucoup pour vos informations,

Je mets ce forum comme resolu!

Bonne soiree a vous,

Cordialement,

Auguste

Rechercher des sujets similaires à "impossible call macro qui fonctionne"