Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fonction VBA pour changer la couleur du texte

tcartillier

XLDnaute Nouveau
Bonjours à tous,

alors voila j'aimerai faire une chose qui ne me paraissait pas compliqué mais pour finir j'ai bien du mal a y arriver.

Je voulais simplement faire un FONCTION en VBA qui réécrit le contenu d'une cellule mais en changent la couleur de la police en fonction de la valeur de la cellule,

Je comptais par exemple mettre en vert si la cellule supérieur a 7, orange entre 0 et 6, et en rouge pour les chiffres négatif.

Pour le faire un macro que je lance en cliquant dessus il y a pas de problème mais pour le faire avec une fonction je n'y arrive pas...

j'aimerai utiliser cette fonction pour visualiser avec des couleurs le nombres de jours qu'il me reste avant de finir certaine taches.

alors voila le code que j'essaie mais qui n'applique pas la couleur que je souhaite... :

Code:
 Function Alerte_Couleurs(Jours_restants As Object)
       Application.Volatile
         
        If Jours_restants < 0 Then
         Selection.Font.ColorIndex = 3
         Alerte_Couleurs = Jours_restants
        End If
        
        If Jours_restants >= 0 And Jours_restants <= 7 Then
         Selection.Font.ColorIndex = 46
         Alerte_Couleurs = Jours_restants
        End If
        
        If Jours_restants > 7 Then
         Selection.Font.ColorIndex = 50
         Alerte_Couleurs = Jours_restants
        End If
End Function


merci de votre aide

Thomas.
 

SergiO

XLDnaute Accro
Re : fonction VBA pour changer la couleur du texte

Bonjour Thomas,

Pourquoi tu n'utilises pas une Mise en Forme Contionnelle?

Ci-joint un exemple.

@+
 

Pièces jointes

  • MFC.xls
    26 KB · Affichages: 1 052
  • MFC.xls
    26 KB · Affichages: 1 062
  • MFC.xls
    26 KB · Affichages: 1 077

tcartillier

XLDnaute Nouveau
Re : fonction VBA pour changer la couleur du texte

Merci beaucoup SergiO, je ne connaisait pas la mise en forme conditionnelle et c'est vrai que j'arrive a faire exactement ce que je voulais avec... Merci

Sinon si quelqu'un a quand même une idée de ce qui clochait dans ma fonction je suis interessé.


Merci
Thomas
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Thomas,

Tu as écrit : « si quelqu'un a quand même une idée de ce qui clochait dans ma fonction je suis interessé. »

Une fonction retourne une valeur dans la cellule où elle est placée, mais elle ne peut pas changer le format de cette cellule : ni la couleur du texte, ni la couleur de remplissage, ni la police de caractères utilisée, ni la taille de la police, ni les bordures, etc...

soan
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Pour ajouter aussi une pièce à cette vielle discussion qui n'intéresse probablement plus grand monde,
une Worksheet_Calculate le peut en revanche. Par ailleurs même invoquée par Excel, une Function peut ajouter des éléments dans une Collection VBA. En combinant ces deux choses on peut faire en sorte qu'une fonction perso paraisse quand même faire ça.
 

Discussions similaires

Réponses
20
Affichages
504
Réponses
19
Affichages
592
Réponses
4
Affichages
353
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…