Lancer une macro dés qu'une condition est remplie

Je n'ai pas trouvé comment lancer automatiquement une macro avec EXCEL 97 SR-2, lorsqu'une condition est remplie:

exemple:

=SI(A1=B2;Lancer une macro....................)

Merci d'avance pour votre aide

bonsoir JF 43,

à mettre dans le "codeFeuille" de ta formule.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        If [a1] = [b2] Then
            MsgBox ("départ macro")     'macro à lancer
        End If
End Sub

Attention, si tu laisse A1 = B2 , la macro se lancera à chaque entrée !!

amicalement

Claude.

Bonsoir,

Dans la macro de Claude

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
        If [a1] = [b2] Then 
            Call Tata
        End If 
End Sub

Avec Tata, le nom de ta macro à exécuter (le CALL placé avant est facultatif mais pour plus de lisibilité il est préférable de le laisser)

La macro Tata se lancera si la valeur entrée en A1 est égal à B2

Le code est à placer en VBA dans la feuille où tu places la condition.

A te relire

Dan

Bonsoir,

si la valeur de ta cellule A1 est le résultat d'une formule, tu peux utiliser l'évènement calculate :

Private Sub Worksheet_Calculate()
If [A1] = [B2] Then Call ma_macro
End Sub

par contre si tu le rentres à la main, tu peux utiliser l'évènement Change :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target = [B2] Then Call ma_macro
End Sub

Nota : pour Nad & Dan : l'instruction Call, bien que facultative, permet à VBA de situer exactement l'emplacement de la procédure (ici ma_macro) dans les modules lors de la compilation du code, et ainsi un gain de temps lors de grosses applications comprenant un grand nombre de modules et de procédures.

re,

Note pour Felix : c'est ce que j'ai dit non ? De toute façon que tu mettes le Call ou pas, excel verra ce qu'il doit faire.

J'ai déjà fait un certain nombre de fichiers, certains contenant bon nombres de modules, et je n'ai remarqué aucune différence de temps d'exécution que l'on mette le Call ou non.

Dan

Merci à tous je vais suivre vos conseils.

Salut Félix et Dan,

Je confirme ce que dit Dan. Pour une question de compréhension de code je préfère aussi, comme la plupart, de laisser cette commande. Je cite MSDN :

Vous n'êtes pas obligé d'utiliser l'instruction Call lorsque vous appelez une procédure. Toutefois, elle améliore la lisibilité de votre code.

Cdlt,

Quelqu'un pourrait il réexpliquer en français la démarche car j'ai beau faire pareil mais le programme plante.

Pour l'instant je rempli entre autre 2 cellules avec mon programme mais en appuyant sur un bouton mis sur la même feuille et faisant appel à la macro.

Moi je veux juste insérer un code dans cette feuille afin d’exécuter la même macro automatiquement quand une cellule particulière de cette même feuille change.

Ma macro est écrite sur une autre feuille que celle-ci.

Désolé pas de fichier joint l'excel est beaucoup trop gros.

sans titre

Up ?

Rechercher des sujets similaires à "lancer macro condition remplie"