XL 2013 Recalculer feuille, calculate et F9 ne fonctionnent pas

louloubru

XLDnaute Junior
Bonjour,

j'ai besoin de créer un bouton qui me recalculerai la feuille sur laquelle il se trouve.
Dans cette feuille se trouve des fonctions que j'ai créé qui utilisent les données des autres feuilles. Donc lorsque je change des données dans les autres feuilles, j'aimerais pouvoir mettre à jour certains bilans.

j'ai déjà cherché sur les forums où F9 et la fonction calculate sont mentionnées. Mais cela ne fonctionne pas. Mes fonctions ne recalculent pas. Je suis obligée de me mettre dans ma cellule et d'appuyer sur entrée pour que le calcul se fasse. (et de tirer ensuite à l'ensemble de mes formule)

Auriez-vous une solution ?

Merci beaucoup,

Louise
 

Roblochon

XLDnaute Impliqué
bonjour,

En première ligne du corps des fonctions que vous avez créées mettez: Application.Volatile
Vos fonctions seront recalculée à chaque fois. Sachez que suivant ce qu'elles calculent, cela peut être gourmand en temps et mémoire.

Cordialement
 

louloubru

XLDnaute Junior
bonjour,

merci beaucoup pour cette réponse, effectivement rien que pour l'enregistrement cela prend du temps ...
Cela permettra de déclencher le calcule avec un bouton dans lequel je mets "calculate" ? Parce que je ne souhaite pas que cela se recalcule à chaque fois ... (justement trop lent)
Je vous demande plutôt que d'essayer parce que j'ai peur de planter mon fichier.

Merci,

Louise
 

louloubru

XLDnaute Junior
D'après ce que je peux lire, cela déclenche le calcul chaque fois qu'une cellule est modfiée dans la feuille ...
--> ingérable pour moi, l'idéal serait de pouvoir déclencher ce calcul via un bouton.
 

Roblochon

XLDnaute Impliqué
Bonjour,

Dans cette feuille se trouve des fonctions que j'ai créé qui utilisent les données des autres feuilles. Donc lorsque je change des données dans les autres feuilles, j'aimerais pouvoir mettre à jour certains bilans.
Si vous nous donniez directement un exemple de votre fichier nous pourrions peut-être avoir une chance de vous trouver une solution, plutôt que de tergiverser sur du virtuel.

A vous relire
 

louloubru

XLDnaute Junior
Ok ... on se calme : je ne sais jamais quoi faire : je donne un fichier, on me dit que ne va pas me faire tout le travail, je ne le donne pas, on me le demande...
Zen
J'utilise une fonction dans une feuille que j'ai moi même créé. La valeur ne se met à jour que si je me remets sur la cellule et appuie sur entrer. c'est assez laborieux, j'aimerai pouvoir déclencher le calcule par un bouton.
J'avais utilisé calculate associé à un bouton mais cela ne fonctionne pas.
Fichier exemple ci-joint.
 

Fichiers joints

zebanx

XLDnaute Accro
Bonjour Roblochon ;) , louloubru

L'indication de Roblonchon en #2 fonctionne bien pourtant..

VB:
Function SommeParticipants(Evenement)
Application.Volatile
SommeParticipants = Application.Sum(Sheets("test").Cells.Find(Evenement, , xlValues).EntireColumn)
End Function
 

louloubru

XLDnaute Junior
Bonjour,
effectivement maintenant cela fonctionne !
La première fois quand j'ai essayé d'insérer Application.volatile cela a fait planté tout mon fichier ... et comme les fonction sont longues à calculer, j'ai cru que cela n'allait pas être possible mais cela fonctionne maintenant sans soucis ...

Excusez-moi de vous avoir sollicité de nouveau alors que la première possibilité fonctionnait.
Je garde l'exemple avec le tableau mais j'ab=vais du enlever les tableaux de mon fichier car cela ne faisiat pas bon ménage avec les boucles (je fais ça sur plusieurs feuilles donc besoin de boucles.)

Un grand merci,

Louise
 

eriiiic

XLDnaute Barbatruc
Bonjour à tous,

je te conseille d'utiliser plutôt la proposition de Roblochon de 16:08.
Beaucoup plus efficace et rapide que ta fonction personnalisée pas franchement nécessaire.
eric
 

louloubru

XLDnaute Junior
Bonjour,
oui mais c'est un fichier exemple ... celui sur lequel je travaille comporte plusieurs feuilles, j'ai rajouté des conditions dans ma fonction ...
Je ne pouvais pas vous le transmettre tel quel, je vous ai mis une version simplifiée pour qu'on comprenne le principe.

Je me réjouissais mais l'ouverture du fichier est beaucoup trop longue avec application.volatile ...
Il me faudrait vraiment un moyen de déclencher le calcul avec un bouton. (vos propositions le déclenchait automatiquement), pour que ce temps de calcul ne soit pris que lorsqu'on le souhaite et non à chauqe fois qu'on ouvre le fichier : ce n'est pas forcément nécessaire.

Je pense qu'à ce stade je me contenterai de cliquer sur les cellules et d’appuyer sur entrer à chaque fois que j'ai besoin d'une mise à jour mais c'est embêtant pour les autres utilisateurs du fichier...
 

eriiiic

XLDnaute Barbatruc
Comment peux-tu espérer avoir une réponse adaptée sans un fichier de travail avec la structure réelle des données ?
 

Roblochon

XLDnaute Impliqué
Bonjour,
En situation réelle, pourquoi avez-vous besoin d'une fonction personnalisée (udf) pour faire une somme. Les outils et fonction excel sont normalement suffisant.
Si toutefois vous avez réellement besoin d' une udf essayez de cerner les plages dans laquelle vous voulez faire la recherche:

VB:
Dim plg As Range
Set plg = Sheets("Test").UsedRange ' Ne concerne que la plage de cellules utilisée sur la feuille
Application.Sum(Intersect(plg.Find(Evenement, , xlValues).EntireColumn, plg))
Comme nous n'avons pas tous les tenants ni les aboutissants il est difficile de vous trouver une solution efficace.

La macro que vous demandez pourrait être sur une cellule:

Code:
Sub   Rafraichir()
   Sheets("Test").Range("A3").Formula = "=SommeParticipants(""Quiz"")"
End Sub
Cordialement
 

louloubru

XLDnaute Junior
Bonjour,

le problème est qu'effectivement je ne peux pas vous donner tous les tennats et aboutissants ... J'ai déjà intégré usedrange dans ma fonction ...
j'ai en plusieurs sur la feuille (3), je voudrais qu'elles se lancent toutes.
La solution de sub rafraichir me semble donc compliquée.

Je pense que je vais laisser tomber...

J'ai fait une fonction personnalisée et je n'ai pas utilisé les fonctionnalités d'excel car je ne sais pas e faire sans vba : je fais par exmeple la somme des nouveau participants, un participants est considéré comme nouveau s'il n'y a pas de dans les autres colonnes, par catégorie ... J'ai beosin de boucles.
Bref je ne sais pas faire sans VBA. Cela fonctionne comme cela et je ne souhaite pas revenir là dessus.

Je cherche à savoir s'il n'y aurait pas un moyen de déclencher le calcul des fonctions dans une feuille par un bouton. Donc je vous ai mis un exemple de ma situation simplifiée mais trouver une solution sans fonction, ou en modifant profondément la fonction n'est pas mon objectif : cela me force à revoir toute la structure du fichier qui est lourd ...

Si ce n'est pas possible tanpis :(
 

eriiiic

XLDnaute Barbatruc
Dans ce cas pourquoi faire une fonction personnalisée ?
Fais un simple sub qui met à jour tes données sur le clic d'un bouton.
eric
 

louloubru

XLDnaute Junior
Dans ce cas pourquoi faire une fonction personnalisée ?
Fais un simple sub qui met à jour tes données sur le clic d'un bouton.
eric
Re,
ma fonction est faite, c'est le sub qui met à jour mes donnée que je cherche à faire justement ... qui met à jour la fonction présente dans les cellules.
 

louloubru

XLDnaute Junior
bonjour,



Effectivement pourquoi faire simple quand on peut faire compliqué.

Dernier post pour moi, puisqu' aucune solution simple n'agrée.

bonne journée
Re,

ma question est : est-il possible de créer un sub/bouton pour mettre à jour des fonctions dans une feuille ?
Ce n'est pas de me refaire tout mon fichier ... J'ai fait du mieux que je pouvais sur le sujet, je répète : je vous ai envoyé une version simplifiée, je ne peux pas changer la structure tel que vous le proposez.

Maintenant si ce n'est pas possible tanpis, ce n'est pas la peine pour autant de critiquer ce que j'ai fait. J'avais mes raisons, si vous voulez l'hsitorique depuis le début j'en ai pour l'après-midi.

Bonne journée,

Louise
 

eriiiic

XLDnaute Barbatruc
Une fonction personnalisée se met à jour toute seule si elle reçoit en paramètre toutes les plages susceptibles de la faire évoluer.
L'avantage c'est qu'elle n'est recalculée que si un antécédent change.
Sinon la mettre volatile comme déjà dit, avec les pb de lenteur éventuels.

Quant à faire un sub qui revalide toutes tes cellules utilisant cette fonction ça ne présente pas beaucoup d'intérêt. Autant faire un sub qui y met directement le résultat. Il peut très bien utiliser ta fonction personnalisée, tu n'auras pas cette partie à refaire.
 

louloubru

XLDnaute Junior
Les fonctions en question font des boucles sur les feuilles pour compter dans ecratins conditions. Or quand je change le svaleurs dans mes feuilles, le bilan (donné par la fonction), ne se met pas à jour.
Donc voilà je voudrais pouvoir le mettre à jour sans utiliser volatile qui me recalcule tout tout le temps et qui me donne un temps d'ouverture du fichier inutilement long.
 

Discussions similaires


Haut Bas