OVH Cloud OVH Cloud

VBA : activation Function sur changement de couleur

20 réponses
Avatar
Quetzalcoatl
Bonsoir,

J'ai créé une fonction VBA qui dénombre, dans une plage donnée, les cellules d'une certaine couleur.
J'utilise cette fonction personnalisée dans une feuille EXCEL (97).
Problème : la fonction ne s'exécute pas si je change la couleur d'une cellule dans la plage, donc le résultat n'est pas mis à jour.
Comment faire pour que le résultat soit mis à jour ?
Plus généralement, dans quelles conditions une fonction est-elle recalculée ?
Merci !

10 réponses

1 2
Avatar
Quetzalcoatl
Bonjour,

Excel a prévu de faire l'inverse : affecter une couleur en fonction d'une condition (mise en forme conditionnelle).
Pourtant il y a bien des gens (dont moi) qui aiment réfléchir en mettant des couleurs.


Eh oui ! Et parfois, il n'y a tout simplement pas de condition exprimable sous forme d'une équation !

Avatar
Quetzalcoatl
Bonjour,

http://boisgontierjacques.free.fr/pages_site/fonctioncouleurfond.htm

si je sélectionne quelques cellules de la plage donnée et que je change leur couleur, sans plus toucher à rien (ou bien en
enregistrant et
en fermant le classeur dans la foulée), la fonction n'est pas recalculée et, dans ce cas, à aucun moment je ne vois le bon résultat.

Mais merci quand même, c'est toujours mieux que F9 ou un recalcul sans condition.
Avatar
lSteph
Bonjour,

J'y avais pensé, mais on ne peut pas tout mettre en équation :-)
Et bien si tu avais bien vu, c'est la bonne idée amha car

à partir du moment où c'est un truc qui ne peut pas s'exprimer
logiquement,
c'est la plupart du temps que ce n'est pas un point pertinent e.

;-)

@+

--
lSteph





On 27 nov, 10:46, "Quetzalcoatl" <plusdepourriel> wrote:
Bonjour,

De quoi inspirer au bout de ce lien, à titre d'exemple
http://www.excelabo.net/excel/formatsdiv.php#recalculgras


Bouduuuu !

AMHA, il est de loin plus avantageux de mettre en place une Mise en form e conditionnelle et de compter les cellules qui répondent
à la condition ; on a alors sans problème et le visuel et le décom pte.


J'y avais pensé, mais on ne peut pas tout mettre en équation :-)

Merci !



Avatar
Modeste
Bonsour® Misange avec ferveur ;o))) vous nous disiez :

C'est un bidouillage très
utile et efficace mais si tu restes dans la même cellule et changes
la couleur, rien ne se produit.


si... si ... sans changer de cellule .... mais il faut déclencher un autre
événement !!!
;o)))
Alors pour un clic supplémentaire...
c'est encore du bidouillage ;o)))
il suffit de dupliquer la proc evenementielle dans :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not IsEmpty(celluleAvant) Then
If Not Intersect(Range(celluleAvant), [A1:E14]) Is Nothing Then Calculate
End If
celluleAvant = Target.Address
End Sub

ou bien pour deux clics supplémentaires...dans :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If Not IsEmpty(celluleAvant) Then
If Not Intersect(Range(celluleAvant), [A1:E14]) Is Nothing Then Calculate
End If
celluleAvant = Target.Address
Cancel = True
End Sub

ce qui est un tou-tou-tou-'ti peu plus rapide que F9 ....
;o)))

@+
;o)))

Avatar
Misange
à partir du moment où c'est un truc qui ne peut pas s'exprimer
logiquement,
c'est la plupart du temps que ce n'est pas un point pertinent e.


si seulement c'était si simple !
Misange

Avatar
Philippe.R
"Misange" a écrit dans le message de
news:%
Pour qu'une fonction soit recalculée, il faut qu'elle soit déclarée comme
"volatile" ( la nommer Misange ne suffit pas.... ;o)))


Et si j'étais un ange à deux ailes ça le ferait tu crois ?
Misange


Faut voir !
;o)))))))
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R


Avatar
Philippe.R
"Quetzalcoatl" <plusdepourriel> a écrit dans le message de
news:474be7fb$0$5110$
Bonjour,

Excel a prévu de faire l'inverse : affecter une couleur en fonction d'une
condition (mise en forme conditionnelle).
Pourtant il y a bien des gens (dont moi) qui aiment réfléchir en mettant
des couleurs.


Eh oui ! Et parfois, il n'y a tout simplement pas de condition exprimable
sous forme d'une équation !

Et le problème c'est qu'alors il n'y a plus grand chose à automatiser (comme

le nouveau décompte des cas répondant à la condition "inexprimable")

P'tain ce que ce monde imparfait est agaçant !
Mais excitant !
;o))))
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R


Avatar
LSteph
Même s'il n'est pas toujours aisé de l'écrire.
Le but étant de conditionner une couleur c'est nécessairement qu'il y a
une condition!
Si on n'en trouve pas c'est qu'il n'était probablement pas si important
de mettre une couleur.

C'est en effet aussi implacablement simple!
Et cela arrive bien plus souvent que les fois
où l'on veut bien le voir.

;o))

@+

--
lSteph




à partir du moment où c'est un truc qui ne peut pas s'exprimer
logiquement,
c'est la plupart du temps que ce n'est pas un point pertinent e.


si seulement c'était si simple !
Misange



Avatar
Misange
Même s'il n'est pas toujours aisé de l'écrire.
Le but étant de conditionner une couleur c'est nécessairement qu'il y a
une condition!
Si on n'en trouve pas c'est qu'il n'était probablement pas si important
de mettre une couleur.

C'est en effet aussi implacablement simple!
Et cela arrive bien plus souvent que les fois
où l'on veut bien le voir.




Non non, je persiste :
J'analyse régulièrement de grandes séries de données biologiques. C'est
un peu comme si je devais dans une même cellule de mettre le poids d'une
pomme et un code couleur pour dire si elle a l'air bonne ou pas.
Je ne peux absolument pas jouer sur ma MEFC dans ce cas car l'aspect de
la pomme est totalement indépendant de son poids (je ne travaille pas
avec des golden calibrées !) et il est indispensable que la mesure et
l'aspect soient dans la même cellule (pas sur deux tableaux séparés)
pour que je sache ensuite d'un coup d'oeil si j'ai le droit
d'interpréter la mesure faite ou si elle est biaisée.

Voilà un exemple ou je colorie manuellement mes cellules et ou ensuite,
je traite les cellules en fonction de leur couleur.Merci à xl2007 qui
permet de trier en fonction de la couleur du fond, voilà qui m'aide
grandement.


Penser que tout peut être mis en équation, c'est notamment oublier par
exemple que la médecine n'est pas une science exacte :-) Et que si les
biologistes n'analysaient que ce qui est exactement quantifiable, il y a
un sacré paquet de découvertes qui n'auraient jamais été faites...
mon grain de sucre :-)

Misange

Avatar
lSteph
Bonjour Misange,

Certes , "on ne peut tout mettre en équation" et heureusement!
(cela pourrait être douloureux) :o))

Mon propos se limitait au cadre d'excel et au cas d'école du sujet
donc au rapport entre condition et couleur. Même si l'exemple que tu
évoques est une simplification volontaire d'un cadre d'études sans nul
doute bien plus complexe,
en outre s'appliquant au même exemple :
je colorie manuellement mes cellules et ou ensuite
un déroulant: oui non ou telle couleur

colorié non colorié....

..pour le reste car quoique des choix semblent
un jour les seuls possibles et des choses que l'on s'impose:
... est indispensable que la mesure et
l'aspect soient dans la même cellule
cela confirme également , la suite,

Et cela arrive bien plus souvent que les fois
où l'on veut bien le voir.
dans la cellule adjacente ou en commentaire...


(tu vas me dire j'ai déjà des commentaires qui ont aussi leur
utilité...)
et je ne me permettrais pas de m'immiscer dans une matière qui n'est
pas mienne.

Mais c'est un fait il y a des cas où l'on ne trouve pas d'alternative.
C'est juste qu'à force de voir que trop souvent je m'impose ou
d'autres s'imposent, des contraintes pas aussi indispensables que
ça , qu'il m'arrive d'y réfléchir à nouveau et en ce sens m'en rendr e
compte.

Le principe, libre à discussion, méritait d'être exprimé et n'a ni
prétention ni vocation à être parole d'évangile.
Cela n'a jamais empêché de faire des découvertes!

D'ailleurs tu dis toi même:
Merci à xl2007 qui
permet de trier en fonction de la couleur du fond


..qui sait un 2008 ou 9 ou + permettra-t-il d'autres prouesses.


;-)

Cordialement.

--
Stéphane





On 28 nov, 09:14, Misange wrote:
Même s'il n'est pas toujours aisé de l'écrire.
Le but étant de conditionner une couleur c'est nécessairement qu'il y a
une condition!
Si on n'en trouve pas c'est qu'il n'était probablement pas si importa nt
de mettre une couleur.

C'est en effet aussi implacablement simple!
Et cela arrive bien plus souvent que les fois
où l'on veut bien le voir.


Non non, je persiste :
J'analyse régulièrement de grandes séries de données biologiques. C'est
un peu comme si je devais dans une même cellule de mettre le poids d'une
pomme et un code couleur pour dire si elle a l'air bonne ou pas.
Je ne peux absolument pas jouer sur ma MEFC dans ce cas car l'aspect de
la pomme est totalement indépendant de son poids (je ne travaille pas
avec des golden calibrées !) et il est indispensable que la mesure et
l'aspect soient dans la même cellule (pas sur deux tableaux séparés)
pour que je sache ensuite d'un coup d'oeil si j'ai le droit
d'interpréter la mesure faite ou si elle est biaisée.

Voilà un exemple ou je colorie manuellement mes cellules et ou ensuite,
je traite les cellules en fonction de leur couleur.Merci à xl2007 qui
permet de trier en fonction de la couleur du fond, voilà qui m'aide
grandement.

Penser que tout peut être mis en équation, c'est notamment oublier par
exemple que la médecine n'est pas une science exacte :-) Et que si les
biologistes n'analysaient que ce qui est exactement quantifiable, il y a
un sacré paquet de découvertes qui n'auraient jamais été faites...
mon grain de sucre :-)

Misange

...



1 2