Function personnalisée vba excel : "recalcul&

Fermé
sicy38 Messages postés 7 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 18 janvier 2010 - 17 janv. 2010 à 17:41
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 18 janv. 2010 à 21:25
Bonjour,

J'essaie d'automatisé le remplissage d'un tableau pour une compétition sportive : j'aimerai que, lorsque je mets en gras la case contenant le nom d'un des 2 adversaires pour le désigner comme vainqueur, son nom soit copié au tour suivant (ex si je mets en gras le nom d'un des 2 adversaires opposés en 1/4 de finale, le nom du vainqueur est noté pour les 1/2 finales)

J'ai réussi a créé une fonction gras(cell) toute simple qui me renvoie une valeur différente si la cellule testée est en gras ou non. Mon problème est que le résultat de cette fonction ne se réactualise pas si j'inverse la mise en gras pour la cellule testée. Ex : F8 est en gras. En G8 j'écris =gras(F8) et la fonction affichera que F8 est en gras mais si j'enlève la mise en gras de F8, le résultat en G8 n'est pas modifié automatiquement!

Je suppose que c'est parce que la mise en gras n'est pas considéré comme un changement de la variable en F8 et n'entraine pas de recalcul de gras(F8) mais même quand je force le recalcule (fonction F9) il ne se passe rien.

La seule solution que j'ai actuellement pour que la fonction gras reteste la mise en forme de la cellule en F8 est de double-cliquer sur G8 puis faire entrer, autant dire que ce n'est pas pratique du tout.

Si vous avez des suggestions pour que le résultat renvoyé par gras soit réactualisé en cas de changement de la mise en forme, je vous en serait très reconnaissant.

Merci d'avance

Sylvain
A voir également:

5 réponses

ks13 Messages postés 191 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 1 août 2011 23
17 janv. 2010 à 17:50
Tu pourrais joindre une feuille a titre d'exemple?
0
sicy38 Messages postés 7 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 18 janvier 2010
17 janv. 2010 à 18:01
Voici un lien vers le tableau en question.

http://www.ttsj.fr/index.php?option=com_remository&Itemid=16&func=fileinfo&id=68

Par exemple, le nom affiché en W4 n'est pas modifié même si ce n'est plus S3 mais S5 que je mets en gras. Sauf si je double clique 2 fois puis entrée sur W4 mais c'est long...

Merci d'avance
0
ks13 Messages postés 191 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 1 août 2011 23
17 janv. 2010 à 19:11
JE retire ce que j'ai dit, apres verification, cela reviens au meme que laisser le fonction calculer par elle meme, donc aucun changement.
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
18 janv. 2010 à 07:41
Bonjour,

Ajoute au début de ta fonction:
application.volatile
Ca la force à être réévaluée à chaque recalcul.
Comme mise en gras n'entraine pas de recalcul il faudra soit attendre une nouvelle saisie n'importe où soit faire F9.
Tu peux aussi forcer un recalcul sur deactivate de l'onglet, sur un double-clic, sur une sélection...

eric
0
sicy38 Messages postés 7 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 18 janvier 2010
18 janv. 2010 à 21:14
J'édite ce message car je n'avais pas bien étudié la proposition d'ériiic.
En fait il a raison, la ligne application.volatile en début de code change tout et résout mon problème : les résultats sont recalculés dès que je presse sur F9.

Merci

Sylvain
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
18 janv. 2010 à 21:25
Bonsoir,

Je ne pense pas que la position de la fonction joue, une formule est réévaluée si un de ses antécédent change de valeur.
Que ça ne t'empêche pas de regarder le rôle de volatile...
eric
0