Appel macro depuis une fonction si

Bonjour à tous,

je suis nouveau sur le forum et j'aurai une petite question de débutant

Je voudrai savoir si on pouvait lancer une macro en utilisant la fonction =SI dans une cellule, par exemple:

Si A1=1, alors lancer "Macro4".

merci d'avance pour votre aide!

Bonjour

La fonction SI ne déclenche pas la macro nommée MaMacro, mais, la valeur donnée à la cellule, oui.

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
        If [a1] = [b2] Then  'ou(if [A1]=10)
            Call MaMacro
        End If 
End Sub

Cordialement

Bonjour,

Merci pour la réponse!

cependant, je ne comprends pas bien le code que tu m'as envoyé, particulièrement cette ligne:

    
            If [a1] = [b2] Then  'ou(if [A1]=10)      

je voudrai en fait que si A1=1, alors ma Macro1 se lance.

Dans ta ligne de code, j'ai l'impression qu'il faut que si A1=B2 et que A1=10, alors lancer la macro? Pourquoi mettre la condition [a1] = [b2]?

J'ai donc essayé de mettre 10 en A1 et 10 en B2, la macro se lance en partie mais Excel se plante, on dirait que ça tourne en boucle avec le message "erreur d'automation", Excel se ferme ensuite....

J'ai essayé de l'arranger à ma façon (mais je suis vraiment débutant dans le domaine) pour essayer d'avoir un résultat:

    Private Sub Worksheet_Change(ByVal  Target As Excel.Range)
            If [a1] = 1
               Call Macro1
            End If
    End Sub

Là, la macro se lance en partie et meme résultat, ça plante.

J'imagine bien que ma modification est en cause

Merci encore!

Bonjour

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If [a1] = 1 Then

Call Macro1

End If

End Sub

Cordialement

bonjour,

La macro semble se lancer mais j'ai toujours un message d'erreur après son lancement:

"Erreur d'exécution 28, espace pile insuffisant"

ou alors:

"erreur d'automation, l'objet invoqué s'est déconnecté de ses clients"

Pourtant, j'ai fait une toute petite macro pour tester, il s'agit de multiplier une colonne par une autre.

D'où peut bien provenir cette erreur?

merci encore!

-- 03 Juin 2010, 14:52 --

j'ai trouvé une solution qui marche:

    Private Sub Worksheet_Change(ByVal Target As Range)
         If Target.Address = "$A$1" Then
                 If Target.Value = "1" Then Call Macro1

         End If
    End Sub

tout semble rentrer dans l'ordre et plus de message d'erreur

merci!

Re, bonjour

Comme tu peux voir sur le fichier joint, quand A1 est égal à 1, la Macro fonctionne.

C'est certainement dans ta macro qu'il faut chercher l'erreur.

Mets ton fichier avec la macro si tu veux de l'aide

Cordialement

593classeur2.xls (20.00 Ko)

Merci!

Mais comme je l'ai ecrit dans mon précedent message, ça semble fonctionner en utilisant les Target.

Merci pour l'aide!

Rechercher des sujets similaires à "appel macro fonction"