Changer couleur de police selon proximité d'une date date butoire
Bonjour,
J'ai vu que des questions assez similaires à la mienne avaient été posées, mais elles ne répondaient pas exactement à ma question, et je ne suis pas assez douée pour comprendre comment utiliser ces éléments de réponse pour les adapter à mon problème...
Je suis toute nouvelle sur Excel et dans l'univers magique qu'est VBA : une minorante de mon cursus universitaire a le code VBA au programme, je n'ai donc vu que des choses extrêmement simple, et je me suis imaginée pouvoir faire quelque chose de plus compliqué avec mes maigres connaissances ! Après moult recherches, j'appelle à l'aide :
J'ai un tableau avec plusieurs évènements en colonne B, la date correspondant à l'évènement en C, et le nombre de jours restant avant l'évènement (ou le nombre de jours écoulés depuis) calculés grâce à une fonction VBA en D.
Je voudrais "simplement" que si la date de l'évènement est dans 10 jours ou moins, ou que si la date est déjà passée, alors la police d'écriture de toute la ligne passe en rouge. Si la date est dans plus de 10 jours, tout reste en noir, et si possible, mais j'en demande peut-être trop, si la date de l'évènement est aujourd'hui, alors que la ligne passe en vert.
J'ai tenté plusieurs méthodes différentes, mais à chaque fois soit toute la colonne changeait de couleur, soit seule la cellule dans laquelle je faisais "Entrée" changeait de couleur, etc.
Bien évidemment, je voudrais pouvoir étendre cette fonction, et donc qu'à chaque fois elle ne concerne que la ligne où est la cellule qui calcule (je ne connaissais pas le système de "Range", et même en tentant une boucle for avec des i et des j au niveau des paramètres de la cellule, Excel a rigolé et m'a brusquement tout mis en rouge).
Est-ce qu'il est possible d'intégrer ça à ma fonction qui me calcule mon nombre de jours restant/passés ?
Je tente de vous mettre ce que j'ai déjà fait dans ma fonction (et qui donc est problématique à cause de mon Selection, que je ne sais pas par quoi remplacer) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Function Nb_jours(D)
If Date = D Then
Nb_jours = "Aujourd'hui !"
Selection.Font.ColorIndex = 10
Else
If Date - D > 0 Then
Nb_jours = "Il y a " & Date - D & " jours"
Selection.Font.ColorIndex = 3
Else
Nb_jours = "Dans " & -(Date - D) & " jours"
If D - Date < 10 Then
Selection.Font.ColorIndex = 3
Else
Selection.Font.ColorIndex = 1
End If
End If
End If
End Function |
Pour être sûre que ce soit clair, Date est la date du jour, qui se calcule automatiquement, et D est la date de l'évènement, que j'ai rentré dans la colonne C.
Un grand merci par avance pour votre aide !
Felinora