Mise en forme conditionnelle

Bonjour!

Est-ce possible d'ajouter des conditions dans l'option "Mise en forme conditionnelle" qui n'en contient que 3 ?

Merci pour l'attention apportée.

bloubee

Bonjour et bienvenue,

Une recherche sur le forum t'aurais apporté la réponse suivante : https://forum.excel-pratique.com/viewtopic.php?t=510

En espérant que cela corresponde à ton attente...

A +

Bonjour,

Voici une autre méthode, peut être plus lourde à mettre en oeuvre mais qui n'a pas de limite

On connaît la mise en forme conditionnelle d’Excel. Mais celle-ci est limité à 3 conditions.

Pour palier cette limite voici une solution :

Placer ces macros dans la feuille

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mev_01 1, 1, 10, 1
mev_01 17, 7
End Sub
‘=======================================================
Private Sub mev_01(l1, c1, Optional l2, Optional c2)
If IsMissing(l2) Then l2 = l1
If IsMissing(c2) Then c2 = c1
Set zone1 = Range(Cells(l1, c1), Cells(l2, c2))
Dim cellule As Object
For Each cellule In zone1
    With cellule.Interior
        .ColorIndex = none
        .Pattern = xlSolid
    End With
    cellule.Value = UCase(cellule.Value)
    Select Case UCase(cellule.Value)
        Case “DA”: cellule.Interior.Color = RGB(255, 200, 80)
        Case “SE”: cellule.Interior.ColorIndex = 5
        Case “PF”: cellule.NumberFormat = “””-->  “”@”
    End Select
Next
End Sub

La macro mev_01 (Mise En Valeur) possède 4 arguments dont 2 facultatifs.

mev_01 arg1, arg2, arg3, arg4

arg1: numéro de la première ligne de la plage à mettre en valeur

arg2: numéro le la première colonne de la plage

arg3: numéro de la dernière ligne de la plage

arg4: numéro de la dernière colonne de la plage

Par ces arguments on peut affecter une mise en valeur à une plage de cellule.

Si arg3 et arg4 ne sont pas définits, on considèrera qu’ils prennent les valeurs respectives arg1 et arg2. Dans ce cas la plage se limite à une seule cellule (mev_01 arg1, arg2).

Salutation.

Un gros merci pour ces deux réponses et très rapide en plus. Je dois préciser que ce n'est pas le texte que je dois colorer mais la cellule. J'explique en quelques mots...

Je dois compiler des cartes de score de joueurs de golf et les couleurs des cellules varient selon le pointage.

Exemple:

Albatros---> cyan

Eagle---> mauve

Birdie---> jaune

Par---> bleu

bogey---> vert

double et plus---> rouge

sur une normale 3 la cellule contenant le chiffre 3 est bleue

sur une normale 4 la cellule contenant le chiffre 4 est bleue

sur une normale 5 la cellule contenant le chiffre 5 est bleue

et ainsi de suite pour les autres scores.

Encore merci pour l'aide apportée

Bloubee

Voici ce que j'ai appliqué, sauf que je dois cliquer sur un bouton pour démarrer. Ce serait plus pratique si les couleurs s'appliqueraient à l'entrée des données.

Private Sub CommandButton1_Click()

Dim valeur As Range

Range("b7:d40,i7:j40,l7:n40,s7:t40").Select

For Each valeur In Selection.Cells

If valeur.Value = 4 Then

valeur.Interior.ColorIndex = 20

ElseIf valeur.Value = 5 Then

valeur.Interior.ColorIndex = 43

ElseIf valeur.Value >= 6 Then

valeur.Interior.ColorIndex = 3

ElseIf valeur.Value = 3 Then

valeur.Interior.ColorIndex = 6

ElseIf valeur.Value = 2 Then

valeur.Interior.ColorIndex = 39

Else

valeur.Interior.ColorIndex = 2

End If

Next

Range("b7").Select

Range("e7:e40,g7:g40,o7:o40,q7:q40").Select

For Each valeur In Selection.Cells

If valeur.Value = 3 Then

valeur.Interior.ColorIndex = 39

ElseIf valeur.Value = 4 Then

valeur.Interior.ColorIndex = 6

ElseIf valeur.Value >= 7 Then

valeur.Interior.ColorIndex = 3

ElseIf valeur.Value = 5 Then

valeur.Interior.ColorIndex = 20

ElseIf valeur.Value = 6 Then

valeur.Interior.ColorIndex = 43

ElseIf valeur.Value = 2 Then

valeur.Interior.ColorIndex = 40

Else

valeur.Interior.ColorIndex = 2

End If

Next

Range("b7").Select

Range("f7:f40,h7:h40,p7:p40,r7:r40").Select

For Each valeur In Selection.Cells

If valeur.Value = 2 Then

valeur.Interior.ColorIndex = 6

ElseIf valeur.Value = 1 Then

valeur.Interior.ColorIndex = 39

ElseIf valeur.Value >= 5 Then

valeur.Interior.ColorIndex = 3

ElseIf valeur.Value = 3 Then

valeur.Interior.ColorIndex = 20

ElseIf valeur.Value = 4 Then

valeur.Interior.ColorIndex = 43

Else

valeur.Interior.ColorIndex = 2

End If

Next

Range("b7").Select

End Sub

Merci à tous

Bloubee

Rechercher des sujets similaires à "mise forme conditionnelle"