Les fonctions VBA ne recalculent pas automatiquement...

F

Franck

Guest
Bonjour le forum,

Dans l'exemple joint, j'ai écrit une petite fonction f() qui fait la somme des valeurs en A1 et A2.

Function f()
f = Cells(1, 1).Value + Cells(2, 1).Value
End Function


Seulement dans Excel, quand je change l'une des deux valeurs, la fonction ne se met pas à jour automatiquement...

Que puis-je y faire ?

Merci,
Franck
 

Pièces jointes

  • fonction.zip
    6.8 KB · Affichages: 13
  • fonction.zip
    6.8 KB · Affichages: 8
  • fonction.zip
    6.8 KB · Affichages: 10
W

wally

Guest
Bonjour Franck et le forum,

Il faut définir la fonction comme volatile (voir pièce jointe).


Slts

wally
 

Pièces jointes

  • fonction.zip
    7 KB · Affichages: 23
  • fonction.zip
    7 KB · Affichages: 29
  • fonction.zip
    7 KB · Affichages: 25
C

chris

Guest
Bonjour
La modif touchant les cellules concernées par la fonction, la mise à jour devrait se faire sans la mention volatile (qui résoud effectivement mais....)

Le problème vient de la fonction :

Une fonction véritable devrait être ainsi

Function f(x,y)
f = x+y
End Function

et elle doit être utilisée ainsi dans une cellule
=f(a1;b2)

sinon c'est une macro déguisée en fonction puisqu'elle ne s'applique qu'à une plage précise.

Et ici pourquoi ne pas utiliser simplement la fonction somme ?

CHris
 

Discussions similaires