OVH Cloud OVH Cloud

coordonnée de cellule

1 réponse
Avatar
le pop-être
chers tous,
je dispose dans ma boite a outils d'une macro VBA (fonction dans un module),
qui peu etre appeler n'importe ou dans mon classeur.

exemple :
function sinus(x) as double
sinus = sin(x)
end function

sur la cellule ou s'affichera le résultat, je souhaiterais effectuer un test
sur le résultat de ma fonction.

description de ma demande, si le résultat de ma fonction est -1 alors la
couleur de font de ma cellule recevant le résultat est rouge.

vous comprenez que la fonction sinus peu etre appelé n'importe ou dans le
classeur, et que je souhaite que la couleur rouge apparaisse a chaque fois
que le résultat est -1.

j'ai essayé une méthode avec activecell, mais celle ci change la couleur de
la cellule active après avoir validé mon appel de fonction, et non pas la
cellule ou je fais afficher mon résultat.

je remercie par avance votre réponse et votre intéret à excel.

cordialement

le pop-être.

1 réponse

Avatar
LSteph
Bonjour Popêtre,
Notant que sinus n'est qu'un exemple bien sûr puisque cette fonction
existe déjà:
je dispose dans ma boite a outils d'une macro VBA (fonction dans un
module),
il faut distinguer les deux, macro(sub) et fonction(function):

dans une macro qui colorie tu peux appeler une fonction mais une fonction
renvoie simplement un résultat et ne colorie pas.
qui peut etre appeler n'importe ou dans mon classeur.
Tu pourrais utiliser un évennement _change

mais si en plus il faut étendre cela au classeur il faudrait utiliser un
évennement de workbook et boucler conditionnellement
sur toutes les cellules: c'est lourd!

Une solution simple serait plus précisément de cibler la plage (ligne ou
colonne) réservée au résultat de la fonction
et d'y appliquer une mise en forme conditionnelle.
(voir menu format)
En début de ta fonction tu peux ajouter application.volatile si des
recalculs s'imposent pour tenir compte d'une modification.

Cordialement

lSteph


"le pop-être" <le pop-ê a écrit dans le
message de news:
chers tous,
je dispose dans ma boite a outils d'une macro VBA (fonction dans un
module),
qui peu etre appeler n'importe ou dans mon classeur.

exemple :
function sinus(x) as double
sinus = sin(x)
end function

sur la cellule ou s'affichera le résultat, je souhaiterais effectuer un
test
sur le résultat de ma fonction.

description de ma demande, si le résultat de ma fonction est -1 alors la
couleur de font de ma cellule recevant le résultat est rouge.

vous comprenez que la fonction sinus peu etre appelé n'importe ou dans le
classeur, et que je souhaite que la couleur rouge apparaisse a chaque fois
que le résultat est -1.

j'ai essayé une méthode avec activecell, mais celle ci change la couleur
de
la cellule active après avoir validé mon appel de fonction, et non pas la
cellule ou je fais afficher mon résultat.

je remercie par avance votre réponse et votre intéret à excel.

cordialement

le pop-être.