Rafraichissement fonction personnalisée

T

thomas

Guest
Bonjour à tous :
Je suis confronté à un problème de rafraichissement de valeurs calculées par une fonction personnalisée lorsque j'utilise plusieurs fois la même fonction dans des feuilles différentes.
Lorsque je passe d'une feuille à l'autre, les valeurs calculées ne sont pas correctes. Il faut faire F9 manuellement.

Ma fonction contient déja ''Application.Volatile True'' en début, juste après les déclarations de variables.Le recalcul après changement de valeur est Ok.

config (win2k, Excel 2k SR1)
 

coco_lapin

XLDnaute Impliqué
Bonjour Thom et bienvenue.

Regardes si, après avoir changé de feuille et avant de lancer F9, le mode de calcul n'est pas passé sur 'Ordre'.

Pour cela il faut aller dans Outils/Option/Calcul

Il devrait être dans l'état sur 'Ordre'. Il faudra ensuite savoir pourquoi il est passé ainsi.
 

Gael

XLDnaute Barbatruc
Bonjour Thom, bonjour Coco-lapin,

Le recalcul se fait lorsque des valeurs de cellules sont modifiées mais pas si c'est un motif par exemple. Si tu as une fonction qui compte les cellules de couleur, le recalcul ne fait pas si tu change une couleur de cellule, dans ce cas, il faut faire F9.

Par macro, tu peux utiliser 'Calculate' qui lance la calcul sur le classeur et tu peux aussi faire un calcul partiel (beaucoup plus rapide dans certains cas), avec par exemple:

Worksheets('Feuil1').Range('D7:AH9').Calculate

@+

Gael
 
T

Thom

Guest
Merci pour vos réponses, mais ...

Malheureusement non, ce n'est pas un problème de calcul sur ordre ou automatique. L'option est toujours bien réglée sur automatique.

Ma fonction réalise un calcul de somme d'une série de valeurs en colonnes ou en ligne. Il s'agit d'un calcul en puissance afin de sommer des dB (acoustique). Certaines fonctions calculent la somme pondérée en fonction de la fréquence (dB(A), dB(C)), une autre en non pondérée(dB Lin ou Z pour les puristes).

Ci vous voulez, je pourrais joindre un fichier mettant le problème à jour et contenant le code de la fonction
Le problème n'est pas spécifique à mon PC. Il apparaît sur l'ensemble des postes ou j'ai installé la fonction.

J'avais écrit cette fonction il à plus de 2 ans. A l'époque j'avis essayé de savoir pourquoi puis j'avais abandonné. Comme j'avais un peu de temps en ce début d'année, c'est l'occasion de replonger dans ce problème!
De mémoire, il me semble que le problème est apparu lorsque j'ai modifié la fonction pour qu'elle accepte aussi bien des séries de valeur en ligne ou en colonne....
Je vais réessayé....
 
T

Thom

Guest
J'ai collé le code en question à la suite du code des fonctions.
Je ne sais pas si c'est bien là qu'il fallait le coller, mais ça n'a pas d'effet sur mon problème.
Faut il appeler cette nouvelle fonction dans ma fonction de calcul? Quels sont alors les paramètres à passer à Workbook_SheetSelectionChange(???)

Par exemple, lorsque j'ouvre un fichier contenant plusieurs feuille, dès l'ouverture, le résultat calculé par la fonction peut être faux tant que je n'ai pas forcé le calcul par F9.
 

Thom

XLDnaute Nouveau
Effectivement, placer
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CalculateFullRebuild
End Sub
dans thisworkbook de mon fichier .xla résout le problème de calcul lors de l'ouverture du fichier.
Mais lorsque je change de feuille en restant dans un même fichier.xls, les valeurs sont toujours fausses tant que je n'appuie pas sur F9 :(

Merci Pascal76 pour ces premiers progrès!
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Tiens bizarre j'ai pas fait de test mais cela devrait relancer le calcul à chaque changement de selection

tu peux peut-être aussi ajouter ceci

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CalculateFullRebuild
End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Dis il me semble pas que tu avais précisé qu'il s'agissait d'une xla :eek:

ça change tout car quoi que tu fasses sur ton workbook c'est ne pas en ajoutant du code dans ta xla que ça modifiera les choses. Les evenements selectionchange que tu as ajouté se font par rapport à ton classeur xla qui lui ne bouge pas

Il faudrait donc les ajouter sur ton xls
 
T

Thom

Guest
J'avais bien 'Application.Volatile True' dans ma fonction.
En supprimant True ca na cahnge rien.

ci joint un extrait du fichier xla en question.
je n'ai laissé que la plus simple qui calcul la somme sans pondération

je ne sais pas si la méthode est la bonne pour joindre un fichier :ermm:

Message édité par: Thom, à: 13/01/2006 12:34
 

Thom

XLDnaute Nouveau
je recommence en changeant le nom du fichier...


et je vais manger [file name=testcacl.zip size=8113]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testcacl.zip[/file]

Message édité par: Thom, à: 13/01/2006 12:50
 

Pièces jointes

  • testcacl.zip
    7.9 KB · Affichages: 30

Discussions similaires

Statistiques des forums

Discussions
312 610
Messages
2 090 211
Membres
104 452
dernier inscrit
hamzamounir