Couleur d'une ligne en fonction valeur cellule

Bonjour à tous,

J'aurai besoin d'afficher des couleurs différentes dans les lignes d'un tableau en fonction de la valeur affichée dans une colonne.

Ci-joint un tableau pour plus de clarté.

Je bloque sur le faite d'afficher plus de 3 couleurs, mais aussi pour afficher la couleur sous condition à toute la ligne.

Merci d'avance

Pat

bonjour

xl2003 ne permet que 3couleurs pour plus c'est du vba

cordialement

Bonjour

avec le code de Feuil1, lorsque tu saisis un chiffre de A1 à A11, les cellules prennent la couleur correspondante.

Cordialement

Code corrigé

1'521miseenformecouleur.zip (8.16 Ko)

Merci Amadéus, Merci Tulipe_3

J'aimerais comprendre comment tu as fait Amadéus car je ne vois pas de macro et je voudrais reproduire dans un autre tableau ta solution.

Je te remercie par avance

Pat

Bonsoir,

Amadeus a mis un code VBA.

Clique droite sur l'onglet "feuil1" puis choisis "visualiser le code".

Le code est visible dans cette fenêtre.

Tu n'as pas vu qu'il y a avait un code Parce que ton niveau de sécurité des macros est sur "bas".

Mets donc ton niveau de sécurité des macros sur "moyen". Cela affichera une boite de dialogue qui demande s'il faut activer ou non les macros. Par prudence n'active pas les macros si tu ne connais pas un fichier et analyse les codes au préalable.

Amicalement

Bonsoir Amadéus, à tous,

Ton code écrit autrement

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%, Plg As Range
    If Not Intersect(Target, [A1:A11]) Is Nothing And Target.Count = 1 Then
        Set Plg = Range(Target, Target.Offset(0, 3))
            Select Case Target
                Case Is = 1: i = 34
                Case Is = 2: i = 50
                Case Is = 3: i = 6
                Case Is = 4: i = 7
                Case Is = 5: i = 8
                Case Is = 6: i = 4
                Case Else
                Plg.Interior.ColorIndex = xlNone
            End Select
        Plg.Interior.ColorIndex = i
    End If
End Sub

Amicalement

Claude

Merci beaucoup Dan et Dubois

J'ai encore un petit souçi car si je rajoute des lignes à mon tableau, la mise en forme n'est plus prise en compte pour ces nouvelles lignes.

Y a t-il une solution ?

Désolé de vous solliciter à nouveau.

Pat

Re,

Place ce code ci:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, Plg As Range
    If Not Intersect(Target, Range("A1:A" & Range("A65536").End(xlUp).Row)) Is Nothing _
        And Target.Count = 1 Then
        Set Plg = Range(Target, Target.Offset(0, 3))
            Select Case Target
                Case Is = 1: i = 34
                Case Is = 2: i = 50
                Case Is = 3: i = 6
                Case Is = 4: i = 7
                Case Is = 5: i = 8
                Case Is = 6: i = 4
                Case Else
                Plg.Interior.ColorIndex = xlNone
            End Select
        Plg.Interior.ColorIndex = i
    End If
End Sub

Dans le code de Amadeus, tu peux remplacer

If Not Intersect(Target, [A1:A11]) Is Nothing And Target.Count = 1 Then

par

If Not Intersect(Target, Range("A1:A" & Range("A65536").End(xlUp).Row)) Is Nothing _
        And Target.Count = 1 Then

Amicalement

Super ça marche bien sur les nouvelles lignes, merci !

Dans un autre tableau, j'aurai besoin de mettre la condition sur les valeurs de la colonne C, mais problème, la couleur ne s'affiche plus sur toute la ligne.

J'ai remplacé Range("A1:A" & Range("A65536" par Range("C1:C" & Range("A65536

je pense que c'est au niveau de Target.Offset(0, 3))

je ne comprends pas fonctionne cette variable, je pensais qu'en remplaçant 0, 3 par -2, 1 cela fonctionnerait mais là je sèche .... (imaginant que 0 correspondait à la colonne ou se trouve la variable de condition)

Je sollicite encore votre aide !

Merci d'avance

Pat

re

Dans un autre tableau, j'aurai besoin de mettre la condition sur les valeurs de la colonne C, mais problème, la couleur ne s'affiche plus sur toute la ligne.

J'ai remplacé Range("A1:A" & Range("A65536" par Range("C1:C" & Range("A65536

essaie plutôt --> Range("C1:C" & Range("C65536")

je pense que c'est au niveau de Target.Offset(0, 3))

Il faut voir quelles sont les cellules à mettre en couleur. Si tu veux que ce soit A et B en fonction de C, tu dois mettre --> Target.Offset(0, -2)).

je ne comprends pas fonctionne cette variable

Ce n'est pas une variable. Pour t'expliquer :

  • le "0" correspond à la ligne sur laquelle tu te trouves
  • le "3" correspond au numéro de colonne par rapport à la colonne de la cellule où tu te trouves.
  • Le "target" correspond à la cellule sur laquelle tu te trouves.

Si souci, n'hésite pas

Amicalement

Je n'hésites pas à revenir ver toi Dan !

Dans mon nouveau tableau, les colonnes vont de A à E

La variable est en colonne C

Je voudrais que la couleur (en fonction de C) s'affiche de la colonne A jusqu'à la colonne E

Je ne vois pas comment faire pour définir la zone en couleur (colonne A à E)

Target.Offset(0,???

Pat

bonjour,

On aura + vite fait si tu envoie un bout de fichier avec sa structure réelle

Claude

voici mon autre tableau dans le fichier ci-joint

Pat

138miseenforme2.zip (8.38 Ko)

Re,

Essaie comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, Plg As Range
If Not Intersect(Target, Range("C1:C" & Range("C65536").End(xlUp).Row)) Is Nothing And Target.Count = 1 Then
    Set Plg = Range("A" & Target.Row & ":E" & Target.Row)
        Select Case Target
            Case Is = 1: i = 34
            Case Is = 2: i = 50
            Case Is = 3: i = 6
            Case Is = 4: i = 7
            Case Is = 5: i = 8
            Case Is = 6: i = 4
            Case Else: Plg.Interior.ColorIndex = xlNone
    End Select
Plg.Interior.ColorIndex = i
End If
End Sub

Amicalement

Merci Dan, mais il y a un bug au niveau de cette ligne :

If Not Intersect(Target, Range("C1:C" & Range("C65536").End(xlUp).Row)) Is Nothing And Target.Count = 1 Then

Je ne comprends pas pourquoi

Pat

re,

Il n'y a pas de raison si ce n'est que cette instruction doit se trouver sur une seule ligne dans ton code et pas sur deux lignes comme ici dans ton post.

Essaie de voir en enlevant --> "And Target.Count = 1"

A te relire

Merci Dan mais ça ne marche pas non plus ?

J'ai essayé diverses solutions .....sans résultat

Je ne suis pas spécialiste du VBA et je pense que cela doit tenir à pas grand chose

Désolé

Pat

Bonjour à tous,

Le dernier code de Dan fonctionne parfaitement chez moi !

supprime ton code actuel et mets celui de Dan à la place

il se pourrait que le Private Sub est sauté, dans ce cas mets dans un module

Sub Test()
    Application.EnableEvents = True
End Sub

et lance "Test"

Amicalement

Claude

re,

En plus du post de Claude, tu es sûr que le code que l'on t'a proposé est dans ton fichier car dans le dernier fichier que tu as posté (miseenforme2.xls) la macro ne s'y trouve pas.

La seule macro présente en feuille 1 est une "Public Sub couleur"... Ce n'est pas ce qui t'a été proposé ici.

A te relire

Merci beaucoup à tous les deux, cette fois ci ça marche.... ce serait un peu long a expliquer mais le code de Dan était nickel !

J'ai tout effacé et tout recréer.

Je vais essayer d'appliquer à mes autres tableaux cette solution.

@ plus

Pat

Rechercher des sujets similaires à "couleur ligne fonction valeur"