Activer une macro après modification d'une cellule

groudoudou

XLDnaute Nouveau
Bonjour à tous,

j'ai fait plusieurs recherches et je n'arrive malheureusement pas à comprendre l'utilisation de worksheet_change...

Je cherche à incrémenter une cellule (C3) avec un pas de 1 tant que la valeur d'une autre cellule (D5) n'est pas égale à zéro (à 10^-2 près).

J'ai fait une macro test qui fonctionne mais mon but ultime serait de lancer la macro dès que la cellule C3 est modifiée. Ce que je n'arrive pas à faire ...

Je joins le fichier test.

Si quelqu'un peut m'expliquer pourquoi la macro que j'ai définis ne fonctionne pas ?

D'avance merci :)
 

Pièces jointes

  • test-macroactive.xlsm
    30 KB · Affichages: 35

Pierrot93

XLDnaute Barbatruc
Re : Activer une macro après modification d'une cellule

Bonjour,

essaye ceci, mais attention ce code doit être placé dans le module de la feuillle concernée => clcik droit sur l'onglet => visualiser le code et tu colles :
Code:
Private Sub worksheet_change(ByVal target As Range)
If target.Address = "$C$3" Then test
End Sub

bonne journée
@+
 
Dernière édition:

groudoudou

XLDnaute Nouveau
Re : Activer une macro après modification d'une cellule

Merci Gilbert et Pierrot,

J'ai effectivement collé le code dans le module de la feuille concerné, comme conseillé, et ça a marché.
Attention, ce cas test ne fonctionne pas si la valeur de A est "trop élevée".
Ce cas test va me permettre de configurer un calcul itératif dans une feuille Excel sans que l'utilisateur n'ai besoin de cliquer sur un bouton (un oubli est si vite arrivé :)).

Un collègue m'a parlé des calculs itératif dans Excel sans VBA, je vais faire quelques recherches.

Merci du coup de main.
 

Si...

XLDnaute Barbatruc
Re : Activer une macro après modification d'une cellule

salut

et avec cette évènementielle (seulement) dans ce contexte ?
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  If R.Address <> "$C$3" Then Exit Sub
  Application.ScreenUpdating = 0
  If Not IsNumeric(R) Or R > R(2, 1) Then R = R(2, 1)
  Application.EnableEvents = 0
  Do Until Round([D5], 2) = 0
    R = R + 1
  Loop
  Application.EnableEvents = 1
End Sub
 

Pièces jointes

  • Change évènement et incrémentation.xlsm
    14.7 KB · Affichages: 29

Discussions similaires

Réponses
31
Affichages
917

Statistiques des forums

Discussions
312 161
Messages
2 085 852
Membres
103 005
dernier inscrit
gilles.hery