Execution automatique d'une macro

GREGILILI

XLDnaute Nouveau
Cela fait 4h00 que je cherche sur le forum.

Je voudrais executer automatiquement la macro "ajaune" lorsque le résultat de la cellulle M1 change.

J'ai bien trouvé le code suivant. Il marche quand je modifie manuellement (= lorsque je saisie un nouveau chiffre) dans la cellule M1.

En revanche, je n'arrive pas à executer la macro "ajaune" quand la cellule M1 est modifiée par un calcul.

Merci d'avance pour votre aide précieuse.


:)
 

Pierrot93

XLDnaute Barbatruc
Re : Execution automatique d'une macro

Bonjour gregilili

regarde peut être du coté de l'événement "calculate" de la feuille concernée, il aura sans doute lieu de lancer ta procédure à ce niveau :

Code:
Private Sub Worksheet_Calculate()

bonne soirée
@+
 

GREGILILI

XLDnaute Nouveau
Re : Execution automatique d'une macro

Merci Pierrot pour ta réponse.

J'ai essayé de chercher dans cette direction mais les seuls résultats que j'ai trouvés pour la fonction calculate sont du type

si la cellule concernée (M1 dans mon exemple) > 6 (par exemple) alors execution de la macro

dans mon cas je voudrais si la cellule concernée change, alors execution de la macro

Encore merci d'avance pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Execution automatique d'une macro

Re

peut être procéder ainsi :

dans le module "thisworkbook" :

Code:
Option Explicit
Private Sub Workbook_Open()
mavaleur = Sheets("Feuil1").Range("M1").Value
End Sub

dans un module standard :

Code:
Option Explicit
Public mavaleur

dans le module de la feuille concernée :

Code:
Option Explicit
Private Sub Worksheet_Calculate()
If Range("M1").Value <> mavaleur Then
    nomdetamacro
    mavaleur = Range("M1").Value
End If
End Sub

@+
 

GREGILILI

XLDnaute Nouveau
Re : Execution automatique d'une macro

merci Pierrot pour ta réponse rapide
N'étant pas un pro des macros, peux-tu juste me dire ce que tu entends quand tu dis
-module "thisworkbook"
- module standard
- module de la feuille concernée

Désolé si la question est bête ....
 

Risleure

XLDnaute Occasionnel
Re : Execution automatique d'une macro

Bonsoir le Forum, GREGILILI

Une réponse en PJ mais il serait plus simple de surveiller la modification de la cellule utilisée dans le calcul générant la valeur de M1 dans mon fichier, tu pourrais appliquer une surveillance sur "M7"

A+
 

Pièces jointes

  • GREGILILI.xls
    20.5 KB · Affichages: 142
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Execution automatique d'une macro

Re,

pour le module standard, lorsque tu es dans l'éditeur vba => barre de menu => insertion => module standard..

pour le module de la feuille concernée, click droit sur l'onglet => visualiser le code et tu arrives dans le bon module...

pour le module "thisworkbook", dans l'éditeur vba, dans la fenêtre "projet vbaproject" tu click sur le classeur concerné, tu déplies l'arborescence "microsoft excel objets", et double click sur "thisworkbook", tu peux procéder également comme ceci pour la feuille...
 

GREGILILI

XLDnaute Nouveau
Re : Execution automatique d'une macro

en fait je fais appel à une base de données.
le chiffre présent en M1 est modifié à chaque fois qu'il est lui même modifié en base de donné.

Le lancement de la macro doit se faire en automatique.

Exemple: j'ai 8 élèves inscrits sous Mysql. Excel va récupérer cette info et le met dans la case M1

Si j'ai 1 élève de plus qui s'incrit, alors j'ai M1=9 et je veux lancer la macro ajaune en automatique

Concernant le fichier que tu m'a envoyé, je ne vois pas comment cela règle le problème car il y a toujours une action de saisie (dans mon cas, il n'y a pas d'actions de saisie)
 

GREGILILI

XLDnaute Nouveau
Re : Execution automatique d'une macro

J'ai aussi essayé de lancer la macro toutes les x secondes mais cela ne marche pas car j'ai plusieurs macro qui s'enchainent et ont tendance à s'interférer sans qu'excel n'aie eu le temps de faire le calcul de chacune

Néanmoins il y aurais une autre option qui lance la première macron
puis 15 secondes plus tard la deuxième macro
puis 30 secondes plus tard la troisième macro

Ce n'est pas ma question initiale mais c'est une piste pour résoudre le problème

Encore merci pour votre aide.


Grégoire
 

GREGILILI

XLDnaute Nouveau
Re : Execution automatique d'une macro

POUR PIERROT 93

Je n'avais pas vu ton message de 17h26

Je t'ai mis une copie d'écran ci-dessous
Ce lien n'existe plus

Je vois bien pour le module de la feuille concernée mais
- pas pour le module standard, lorsque tu es dans l'éditeur vba => barre de menu => insertion => module standard..

- pas pour le module standard, lorsque tu es dans l'éditeur vba => barre de menu => insertion => module standard..

encore merci !
 

GREGILILI

XLDnaute Nouveau
Re : Execution automatique d'une macro

Bonsoir Pierrot,

Désolé mais j'y arrive pas....

Peut-on plutot partir sur quelquechose de simple :
- je lance la macro n°1 à 00h00h05, 00h01h05, 00h02h05 et ainsi de suite (elle se lance toutes les minutes à la secondes 5)
- je lance la macro n°2 à 00h00h25, 00h01h25, 00h02h25 et ainsi de suite (elle se lance toutes les minutes à la secondes 25)

J'ai bien trouvé une macro qui lance toutes les X secondes mais quand je lance les 2 macros en même temps, elles s'interfèrent et font bugger le système. C'est pourquoi, je veux synchroniser les macros...

Encore merci pour ton aide si cela est possible
 

Discussions similaires

Réponses
4
Affichages
489

Statistiques des forums

Discussions
312 685
Messages
2 090 938
Membres
104 703
dernier inscrit
romla937