Couleur police sous conditions

Résolu/Fermé
cedana - 10 mars 2010 à 13:51
 cedana - 10 mars 2010 à 23:28
Bonjour,
Je vous expose mon problème. Dans la feuil1 colonne D, j'ai une plage D2:D20 dans laquelle je saisis des lettres B, D, E, F, PR et REV qui correspondent à un code. Ce dont j'ai besoin, c'est qu'à chacune de ces lettres s'applique une couleur de police différente. J'ai fait un essai avec la mise en forme conditionnelle mais il n'y a que 3 conditions alors qu'il en faut 6. Je pense que le code VBA résoudrait ce petit problème. Alors je compte sur votre aide car en VBA je suis un piètre débutant.
Merci par avance.
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
Modifié par pijaku le 10/03/2010 à 14:11
Bonjour,
Dans la feuille excel concernée, tapez ALT+F11, insertion/module. Y coller ce code :

Sub couleur_en_fonction_contenu()
Dim cell As Range 
For Each cell In Range("D2:D20") 
If cell = "B" Then 
cell.Interior.ColorIndex = 3 
ElseIf cell = "D" Then 
cell.Interior.ColorIndex = 4 
ElseIf cell = "E" Then 
cell.Interior.ColorIndex = 5 
ElseIf cell = "F" Then 
cell.Interior.ColorIndex = 6 
ElseIf cell = "PR" Then 
cell.Interior.ColorIndex = 7 
ElseIf cell = "REV" Then 
cell.Interior.ColorIndex = 8 
End If 
Next 
End Sub 

On lance la procédure depuis la feuille elle même en tapant ALT+F8 sélectionner "couleur_en_fonction_contenu" et exécuter
Bien sur les codes couleurs (de 3 à 8 dans le code) sont à adapter à votre convenance...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
0
Bonjour Pijaku.
Je te remercie pour ta réponse ultra rapide, ceci m'a permis d'avancer dans mon projet. J'ai simplement changer cell.Interior.ColorIndex par cell.Font.ColorIndex pour la couleur du texte et ça marche. Mais dans une autre colonne H plage H3:H8 j'ai reporté les mêmes lettres B D E F PR et REV afin de les comptabiliser en I3:I8 avec NB.SI(D2:D20;H3) ect...et la le calcul ne s'effectue pas et pourtant les lettres sont au même format.
Faut-il faire référence au contenu des cellules H3:H8 ? Je me suis aperçu qu'en faisant du copier-coller ça fonctionné. Ex: si je copie H3 qui contient B en D2 le calcul s'effectue. Si vous avez la solution je suis preneur.
Merci encore à Pijaku.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > cedana
10 mars 2010 à 19:16
ça peut être un problème de format de cellule, d'espace... beaucoup de choses en fait. Essayez de mettre les cellules D2:D20 au même format et de retaper les lettres idem pour H3...
0
cedana > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
10 mars 2010 à 23:28
Bonsoir Pijaku.
Merci beaucoup pour ton aide. J'ai trouvé la solution pour comptabiliser le nombre de lettres identiques dans la plage D2:D20. J'ai remplacé NB.SI(D2:D20;H3) par NB.SI(D2:D20;"B")
Merci encore pour ta macro .
A+
0