Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Calcul seulement si certaines cellules sont modifiées

  • Initiateur de la discussion Initiateur de la discussion kioups
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kioups

XLDnaute Occasionnel
Bonjour à tous!

J'aimerai qu'un calcul (une formule située en EM6) se fasse seulement si l'une des cellules de la ligne 6 est modifiée...

J'ai tenté la macro (écrite dans l'objet Feuil1 où est ma ligne):
Code:
Private Sub Worksheet_Change()

    If ActiveCell.Row = 6 Then
        Range("EM6").Calculate

End Sub

qui me donne le message : La déclaration de procédure ne correspond pas à la description de l'événement ou de la procédure du même nom.

Mouais... Là, je suis pas inspiré...

Question subsidiaire... Je veux faire la même opération pour 380 lignes... 380 macros à recopier ?????

Merci d'avance!

Kioups
 
Re : Calcul seulement si certaines cellules sont modifiées

Bonjour Kioups,

Un essai de macro :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
For i = 1 To 380
If Not Application.Intersect(Target, Rows(i)) Is Nothing Then
Calculate
End If
Next
End Sub

Cordialement

Bernard
 
Re : Calcul seulement si certaines cellules sont modifiées

Bonjour josé et Bernard,

J'aime bien ton truc josé, je vois à peu près comment je vais pouvoir adapter cette macro...

Je vais essayer de bidouiller tout ça!

Si je suis bloqué, je repasse dans le coin! 😛

Merci beaucoup!
 
Re : Calcul seulement si certaines cellules sont modifiées

Bonjour Jmps,

A bien y regarder, je ne crois pas que cela soit possible en passant par la methode Calculate.
Plus sûrement par macro, le code effectuant les calculs. La commande Calcul étant sur ordre pour éviter les parasitages.

A+

Bernard
 
Re : Calcul seulement si certaines cellules sont modifiées

Re Jmps,

Désolé, je n'avais pas testé ta macro avant l'envoi de mon post précédent !

Effectivement ton code est top !

A bientôt au croisement des errements du forum 🙂

Bernard
 
Re : Calcul seulement si certaines cellules sont modifiées

Bon, j'ai essayé un truc mais ça marche pô....

Code:
Private Sub Worksheet_Change(ByVal target As Range)

Dim i As Integer
Dim ligne As Integer
Dim Colonne As Integer
Colonne = Cells.Column
ligne = Cells.Row

If ligne >= 6 Mod 18 And ligne <= 15 Mod 18 Then
    If (Colonne = 7 Mod 4 Or Colonne = 8 Mod 4) And Colonne < 141 Then
        For i = 144 To 150
            Cells(ligne, i).Calculate
        Next i
            
        If Colonne = 7 Mod 4 Then
            Cells(ligne, Colonne + 2).Calculate
            Cells(ligne, Colonne + 3).Calculate
        Else
            Cells(ligne, Colonne + 1).Calculate
            Cells(ligne, Colonne + 2).Calculate
        End If
    End If
End If
            
End Sub

Je sens que c'est un petit truc de rien du tout... genre dans mes déclarations de variable.... Le bidouillage, ça marche pas toujours...
 
Re : Calcul seulement si certaines cellules sont modifiées

Salut Kioups, José, CBernardT,

Comme mes compatriotes ont l'air de ne plus érrer sur le forum (surement partit manger...), je prends la relève, et il te suffit de modifier comme ceci et ca devrait le faire :
Colonne = Target.Column
ligne = Target.Row


@+
 
Re : Calcul seulement si certaines cellules sont modifiées

Merci Porcinet, encore une preuve que je débute en VB!!

Bon, par contre, encore aucun calcul n'est effectué...

Du coup, j'ai tenté le coup sur une feuille très simple (somme de deux nombres).

Code:
Private Sub Worksheet_Change(ByVal target As Range)

Dim ligne As Integer
Dim Colonne As Integer

ligne = target.Row
Colonne = target.Column

If ligne = 4 Then
    If Colonne = 2 Then
        Cells(ligne, Colonne + 2).Calculate
    ElseIf Colonne = 3 Then
        Cells(ligne, Colonne + 1).Calculate
    End If
End If
    

End Sub

Et là ça marche....

Peut-être cela vient-il du fait que mes calculs sont des fonctions personnalisées ? Que certains calculs dépendent des calculs précédents ? J'ai pris soin de mettre mes calculs dans l'ordre où ils sont effectués...

Y a-t-il un moyen de voir si la macro est executée et comment elle est parcourue ? Si les fonctions personnalisées sont bien appliquées ?
 
Re : Calcul seulement si certaines cellules sont modifiées

re,

Il y a bien un moyen de voir comment est executée la macro, c'est le mode pas à pas, il te suffit de te mettre dans ta macro et d'appuyer sur F8 afin que les lignes de codes soit executer pas à pas, mais dans le cas d'une macro evenementielle, cette méthode ne fonctionne pas.

Donc je te propose de mettre un point d'arret sur la ligne de code ligne = target.Row en te placant dessus et en appuyant sur F9. Ensuite tu retournes sur ta feuille,tu modifies une valeur afin de faire lancer la macro, et tu va voir que la fenetre vba va s'ouvrir, la ligne de code contenant le point d'arret étant surligner en jaune, il te suffit ensuite de faire ce que j'ai dis au début, c'est à dire utiliser la touche F8.

En espérant que mes maigres explications puissent te rendre service...

@+
 
Re : Calcul seulement si certaines cellules sont modifiées

Merci beaucoup Porcinet!! C'est génial ça!!!

Je sais maintenant d'où vient l'erreur...

J'ai essayé avec la cellule situé en EI6, soit la 6ème ligne et la 139ème colonne et c'est là que ça pêche...

If (Colonne = 7 Mod 4 Or Colonne = 8 Mod 4) And Colonne < 141 Then

139, c'est bien égal à 7 modulo 4 ? Soit il y a une erreur dans la formulation, soit je suis mal barré pour passer l'agreg....

Pour moi, 7 mod 4, c'est la colonne 7, puis la 11, puis la 15.....

J'ai faux ??
 
Re : Calcul seulement si certaines cellules sont modifiées

re,

Je crois qu'on va avoir besoin d'un prof de maths (Jacques si tu m'entends...) parce que je me rappel avoir vu le modulo en cours de maths, mais je n'arrive plus a comprendre comment il fonctionne, et l'aide Excel ne correspond pas du tout a ce dont je pensais, donc je suis désolé, mais je ne peux pas t'aider sur ce point 🙁

@+
 
Re : Calcul seulement si certaines cellules sont modifiées

JE suis prof de maths... c'est là que ça m'inquiète...

Apparemment la colonne 7 n'est pas prise dans 7 mod 4...

J'ai modifié mes condions booléennes (en rajoutant un And) mais rien n'y change...

Pour les lignes pas de soucis, apparemment, c'est bien sur mon colonne = 7 mod 4 que ça merdouille....
 
Re : Calcul seulement si certaines cellules sont modifiées

Salut Kioups,

Pour moi, 7 modulo 4 (en langage Excel) donne le reste de la division de 7 par 4 arrêté à l'entier, soit 3

en formule, ça donne =MOD(7;4) qui donne bien 3

Ton modulo et celui d'excel ne sont peut-être pas les mêmes ???

Bonne soirée

@+
 
Re : Calcul seulement si certaines cellules sont modifiées

re, Salut Tibo,

Mdr Kioups.... 😀 😀 😀

Tibo, j'ai vu la meme chose en regardant l'aide, mais il me semble que comme le suggère Tibo, la definition du modulo d'excel n'est pas la mme que le modulo de maths.

A suivre...

@+
 
Re : Calcul seulement si certaines cellules sont modifiées

Pfffff.... Je sais pas pourquoi, mais je croyais que colonne = 7 mod 4 allait vérifier que colonne était bien congru à 7 mod 4... Suffisait donc juste de remplacer par colonne mod 4 = 3 (parce que 7, ça ne marche pas...)

Merci Tibo!

ca roule!!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

E
Réponses
6
Affichages
863
ExcelNewbie96
E
N
Réponses
0
Affichages
916
Nananinanana
N
N
Réponses
0
Affichages
903
Nananinanana
N
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…