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

Rafraichissement fonction personnalisée

  • Initiateur de la discussion Initiateur de la discussion thomas
  • 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 !

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)
 
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.
 
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
 
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é....
 
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.
 
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!
 
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
 
Re

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

ç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
 
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
 
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

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

N
Réponses
6
Affichages
2 K
M
Réponses
5
Affichages
3 K
Milou44
M
L
Réponses
2
Affichages
2 K
locola92
L
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…