Rapport de message :*
 

Re: Executer une macro suite à un calcul avec worksheet calculate

Titre du sujet : Re: Executer une macro suite à un calcul avec worksheet calculate
par myDearFriend! le 10/06/2010 02:16:14

Re bluemoon91,

A la lueur de ton dernier exemple, tu trouveras ci-joint ton fichier modifié selon mon interprétation du problème...

J'ai simplifié à outrance ton code VBA et te propose le code ci-dessous en lieu et place :

DANS LE MODULE DE CODE DE LA FEUIL1 :
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
        MaMacro
    End If
End Sub
DANS UN MODULE DE CODE STANDARD (exemple : Module1) :
Option Explicit

Sub MaMacro()
    Range("C5").Formula = "= A5*B5"
    Range("C5").AutoFill Destination:=Range("C5:C9"), Type:=xlFillDefault
End Sub
Le code contenu dans le module ThisWorkbook est, quant à lui, supprimé.

Je te laisse d'abord regarder si l'exemple joint correspond bien à ce que tu veux obtenir, je te laisse également analyser le code simple utilisé (ci-dessus) et je me tiens à ta disposition pour t'expliquer le fonctionnement de l'ensemble et les erreurs que tu avais commises selon moi.

Il reste une question de fond également qu'il convient de se poser : quel est l'intérêt d'insérer des formules dans les cellules C5:C9 par un automatisme déclenché sur C1 ?
Je résume la situation : à chaque fois que C1 va changer, la macro va insérer (ou réinsérer) les mêmes formules dans la plage C5:C9. Quel en est l'intéret ? Pourquoi réinsérer des formules de calcul à chaque fois ?

Cordialement,