Formule qui ne se calcule pas automatiquement

Hyperactif

XLDnaute Nouveau
Bonjour,

J'ai parcouru différents posts sur ce sujet, mais sans y trouver réponse adaptée à mes capacités.

Voilà mon souci : sous Excel 2010, avec mode de calcul automatique, j'ai des formules qui se calculent automatiquement au fur et à mesure du remplissage des cases, par exp. : =NBVAL("plage") et une formule qui fonctionne bien mais ne se calcule pas : =SI(CodeCouleur("N° case")=4;1;""), sauf à valider par F9 comme si le mode calcul automatique n'était pas enclenché.

Pour info, colorer (ici vert brillant standard au code couleur = 4) une case assignée à une "tâche" et donc déjà remplie me sert à renseigner que cette "tâche" a été accomplie et à le comptabiliser (ramène valeur = 1) dans une colonne adjacente.

Quelqu'un peut'il m'aider SVP, sachant que je ne suis pas expert en VBA ...

P.S : un peu étrange, mais pas pratique car ce fichier est partagé à plusieurs : si au lieu de colorier une case, je recopie la mise en forme d'une case déjà coloriée pour arriver au même résultat , alors l'automatisme fonctionne comme espéré
>> peut-être cette remarque guidera les + experts d'entre vous ... ? !

En tout cas, merci de votre aide et bonne journée

Cordialement
 

Modeste geedee

XLDnaute Barbatruc
Re : Formule qui ne se calcule pas automatiquement

Bonsour®
"by Design" il est notoire qu'un changement de format : police, bordure, couleur n'est pas une action événementielle et ne déclenche pas de re-calcul !!!

Actions possibles :
1 - ajouter Application.Volatile au début du code de la fonction personnalisée CodeCouleur(N°case)
2 - ajouter une instruction Application.Calculate dans chacune des proc événementielles :
Worksheet_SelectionChange et
Worksheet_Change

appliquer les couleurs par une MEFC
utiliser les mêmes conditions utilisées dans les formules
 

Modeste

XLDnaute Barbatruc
Re : Formule qui ne se calcule pas automatiquement

Bonjour Hyperactif et bienvenue :)

Un Application.Volatile au début du code de la fonction ne garantit même pas que celle-ci fonctionnera au changement de couleur ... tu pourrais faire la même chose sur double-clic, peut-être? Mais sans fichier exemple, on peut difficilement être plus précis!?

Par contre, n'est-il pas possible de faire l'inverse (si j'ai bien compris!): tu indiques le 1 dans la "colonne adjacente" et la couleur s'applique par le biais d'une Mise en Forme Conditionnelle?

Oups! Sorry, Modeste Geedee
 

Hyperactif

XLDnaute Nouveau
Re : Formule qui ne se calcule pas automatiquement

Bonjour Hyperactif et bienvenue :)

Un Application.Volatile au début du code de la fonction ne garantit même pas que celle-ci fonctionnera au changement de couleur ... tu pourrais faire la même chose sur double-clic, peut-être? Mais sans fichier exemple, on peut difficilement être plus précis!?

Par contre, n'est-il pas possible de faire l'inverse (si j'ai bien compris!): tu indiques le 1 dans la "colonne adjacente" et la couleur s'applique par le biais d'une Mise en Forme Conditionnelle?

Oups! Sorry, Modeste Geedee

Bonjour Modeste (geedee) et merci de votre sollicitude.

Voici le fichier et qques explications complémentaires :

a) il n'y a pas de mise enforme conditionnelle ailleurs qu'en ligne 6

b) si Pierre a réalisé son Action 1 2014, je colorise B15 du même vert (code couleur = 4) que celui utilisé en E3, j'attends que N15 prenne la valeur 1 conformément à la formule (qui marche) =SI(CodeCouleur(B15)=4;1;"")
> or cela ne fonctionne (j'ai compris maintenant que c'est à cause du Design)

c) je n'ai par contre pas compris pourquoi cela fonctionne si je reproduis en B15 la mise en forme de E3 ! ?

d) je ne suis pas assez calé en VBA script pour profiter de vos explications savantes et , s'il n'y a pas moyen de faire autrement, je ne saurai que recopier (au bon endroit ?) votre rédaction complète (Sorry)

Merci en tout cas

Cordialement
 

Pièces jointes

  • Copie test2.xlsm
    71.4 KB · Affichages: 74

Modeste

XLDnaute Barbatruc
Re : Formule qui ne se calcule pas automatiquement

Re-bonjour,

Les explications savantes, c'est Modeste geedee :p

La piste des MFC que j'imaginais, me semble compromise, si tu dois pouvoir indiquer des 'x' dans les cellules concernées.

Une proposition différente en PJ: dans la plage B14:J72, c'est le double-clic qui colore la cellule.
  • Le premier double-clic sur une des cellules la colore en vert et indique un 1 dans la colonne concernée (de M à AD)
  • Le deuxième double-clic sur une cellule colorée de vert la remplit de couleur orange (le 1 en colonne correspondante est effacé)
  • Un troisième double-clic sur la même cellule le "repeint" en "aucun remplissage"
La fonction personnalisée est supprimée de la plage M:AD (je l'ai mise en commentaire dans le code pour ne pas la supprimer, mais elle n'est plus utile dans ce cas-ci).

Modeste geedee ne manquera pas de nous faire savoir si une solution plus pertinente est envisageable et Hyperactif nous fera savoir ce qu'il pense de tout ça.
 

job75

XLDnaute Barbatruc
Re : Formule qui ne se calcule pas automatiquement

Bonjour Hyperactif, salut les 2 Modestes :)

c) je n'ai par contre pas compris pourquoi cela fonctionne si je reproduis en B15 la mise en forme de E3 ! ?

Apparemment vous ne savez pas bien ce que veut dire volatile.

Un copier/coller quelconque entraîne le recalcul de toutes les formules volatiles du classeur.

En particulier celles contenant la fonction volatile CodeCouleur.

Cette fonction est en effet volatile, vous l'indiquez au post #1 (action de la touche F9).

A+
 

Modeste

XLDnaute Barbatruc
Re : Formule qui ne se calcule pas automatiquement

Re²,

Hyperactif à dit:
je n'ai pas encore trouvé la PJ
:eek: C'est bien simple ... j'ai oublié de la joindre et puis je suis parti faire un petit tour (mais lentement!). Alzheimer me guette, je le sens!

Voici donc la pièce jointe annoncée (le rouge de la honte etc... c'est un grand classique, chez moi)
 

Pièces jointes

  • Codes couleurs (Hyperactif).xlsm
    67.7 KB · Affichages: 107

Hyperactif

XLDnaute Nouveau
Re : Formule qui ne se calcule pas automatiquement

Un grand Merci Modeste,

Plus que parfait !

Cela fonctionne au-delà de mes espoirs les + fous.

Je ne comprends pas grand'chose au script; je serai tout juste capable de l'adapter en cas de modifications mineures du tableur d'origine.

Et pas de souci pour l'oubli de la PJ, je n'aurai rien fait de plus avant ce matin.

Trop modeste, ... allez : "un peu de honte est vite bu"

Hyperactif
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 820
Membres
104 676
dernier inscrit
akram1619