Couleurs dans des colonnes définies avec surlignage de la ligne selectionné

Bonjour,

Je cherche à appliquer une couleur dans différences colonnes , par exemple :

colonnes A à F en bleu

colonnes G à Z en gris

et ce, de la ligne 4 jusqu'a la derniere ligne du tableau

En plus de cela, je voudrai pouvoir surligner la ligne entiere qui est cliquée par l'utilisateur

J'ai essayé de petit code mais la couleur des colonnes prend le dessus sur le surlignage de la ligne cliquée.

Pourriez vous m'aider svp ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim compteur_de_lignes As Long
    Dim plage As Range

    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0

    With Target
        ' Highlight the entire row that contain the active cell
        .EntireRow.Interior.ColorIndex = 8

    End With

     With Sheets("Clients")

     For compteur_de_lignes = 4 To .Range("A" & Rows.Count).End(xlUp).Row

     .Range("A" & compteur_de_lignes).Interior.ColorIndex = 5

     Next compteur_de_lignes

     End With

    Application.ScreenUpdating = True

End Sub

Bonjour,

Merci de joindre un petit fichier à ta demande.

Cdlt

Bonjour lcn, le forum,

Tu a écrit :

la couleur des colonnes prend le dessus sur le surlignage de la ligne cliquée.

attention : si tu as des couleurs mises par MFC, elles ont priorité sur les couleurs que tu veux mettre pour une ligne.

dhany

Voici l'exemple que j'ai écrit en VB, je voudrai colorer de A à C en bleu par exemple, D à E en vert tout en gardant le surlignage de la ligne cliquée .

Actuellement , cela ne fonctionne pas correctement.

8test.xlsm (27.65 Ko)

Bonjour,

J'avais envisagé ceci avec les données sous forme de tableau !...

A te relire.

Cdlt.

6xlp-lcn.xlsm (23.31 Ko)

Salut Icn,

Bonsoir l'équipe,

le tout est de faire les opérations dans leur ordre logique...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Target.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
'
Cells.Interior.ColorIndex = 0
Range("A4:C" & Range("A" & Rows.Count).End(xlUp).Row).Interior.ColorIndex = 5
Range("D4:E" & Range("A" & Rows.Count).End(xlUp).Row).Interior.ColorIndex = 4
Target.EntireRow.Interior.ColorIndex = 8
'
Application.ScreenUpdating = True
'
End Sub

A+

Merci beaucoup

J'ai essayé d'utiliser des couleurs 'pastels' pour le fond des colonnes à colorer mais la sélection reste sur le dernier Range, de ce fait la couleur est faussé car le range reste sélectionné

Comment pourrais je faire pour désélectionner une fois la couleur et le surlignage appliqués ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Plage_NouveauClient As Range
Dim Plage_NouveauDocument As Range

Set Plage_NouveauClient = Range("A4:M" & Range("A" & Rows.Count).End(xlUp).Row)
Set Plage_NouveauDocument = Range("N4:AA" & Range("A" & Rows.Count).End(xlUp).Row)

If Target.Count > 1 Then Exit Sub
Application.ScreenUpdating = False

Cells.Interior.ColorIndex = 0

' Couleur pour la plage contenant les donnée entrées dans le formulaire "NouveauClient"
'Plage_NouveauClient.Select

    With Selection.Interior
       .Pattern = xlSolid
       .PatternColorIndex = xlAutomatic
       .ThemeColor = xlThemeColorAccent5
       .TintAndShade = 0.799981688894314
       .PatternTintAndShade = 0
    End With

 ' Couleur pour la plage contenant les donnée entrées dans le formulaire "NouveauDocument"
Plage_NouveauDocument.Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark2
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

Target.EntireRow.Interior.ColorIndex = 8
Application.ScreenUpdating = True

End Sub

Bonjour lcn, le forum,

je réponds ici à ton post d'hier à 22:22


voici ton fichier modifié :

11test.xlsm (26.01 Ko)

à toi de l'essayer.


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Merci, lorsque je lance le fichier exemple que tu as modifié, j'ai l'erreur :

Impossible de lire la propriété Interior de la classe Range

-->

Range("A4:G" & Rows.Count).Interior.Color = -4142

Ou peut on trouve la liste de l'ensemble des codes couleurs élaborées utilisables avec Excel ?

Bonjour,

Un nouvel exemple en Feuil2, puisque la solution Tableau ne t'inspire pas !...

A te relire pour des explications.

Cdlt.

5xlp-lcn.xlsm (27.66 Ko)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lastRow As Long, rng As Range
    If Target.CountLarge > 1 Then Exit Sub
    With Me
        lastRow = Cells(.Rows.Count, 1).End(xlUp).Row
        Set rng = .Cells(4, 1).Resize(lastRow - 3, 27)
        With rng
            .Resize(, 13).Interior.Color = 16247773
            .Offset(, 13).Resize(, rng.Columns.Count - 13).Interior.Color = 15921906
        End With
        If Not Intersect(Target, rng) Is Nothing Then
        .Cells(Target.Row, 1).Resize(, 27).Interior.Color = 6740479
        End If
    End With
End Sub

Merci beaucoup pour vos réponses et pour les exemples fournis.

Re,

Cela répond il à tes attentes ?

Dans l'affirmative, pense à clore le sujet.

Bon dimanche.

Bonjour lcn, le forum,

[quote="dans ton post de 08:34, tu"]lorsque je lance le fichier exemple que tu as modifié, j'ai l'erreur : Impossible de lire la propriété Interior de la classe Range[/quote]

ça ne me le fait pas sur mon fichier, mais pour -4142 qui est la constante numérique de xlNone, j'aurais quand même dû l'utiliser avec ColorIndex et pas avec Color ; donc l'instruction est plutôt : Range("A4:G" & Rows.Count).Interior.ColorIndex = -4142

c'est corrigé dans cette nouvelle version du fichier :

3test.xlsm (26.00 Ko)

pour les 4 instructions en dessous, laisse Color ! ne remplace pas par ColorIndex !


j'espère qu't'as aimé les couleurs pastels que j'ai choisies ; note que pour c'que t'avais fait, le texte noir sur fond bleu se voit très mal, car y'a pas assez d'contraste ; si vraiment tu veux un fond bleu foncé, utilise une couleur de texte claire, comme du jaune (ou même du blanc).


tu a écrit :

Où peut-on trouver la liste de l'ensemble des codes couleurs élaborées utilisables avec Excel ?

je te propose ces 2 liens :

https://www.excel-pratique.com/fr/vba/liste-couleurs-rgb.php

https://forum.excel-pratique.com/viewtopic.php?p=510956#p510956

dhany

Re,

Pour une solution sans erreur privilégier la proposition :

https://forum.excel-pratique.com/viewtopic.php?f=2&t=112717&p=674328#p674328

Cdlt.

Bonsoir,

Différents cas en PJ

Ceuzin

5jb-curseur.zip (90.17 Ko)

Je n'arrive pas a adapter votre exemple a mon besoin, une erreur persiste.

Je voudrai colorer les colonnes de cette façon, tout en gardant le surlignage de la ligne cliquée

1 à 30 en bleu

31 en noir

32 à 41 en vert

42 en noir

4test.xlsm (29.93 Ko)

Salut Icn,

une manière de faire, vite fait...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Target.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
If iRow > 3 Then
    Cells.Interior.ColorIndex = 0
    iTRow = iRow - 3
    Range("A4").Resize(iTRow, 30).Interior.ColorIndex = 8
    Range("A4").Offset(0, 30).Resize(iTRow, 1).Interior.ColorIndex = 1
    Range("A4").Offset(0, 31).Resize(iTRow, 11).Interior.ColorIndex = 4
    Range("A4").Offset(0, 41).Resize(iTRow, 1).Interior.ColorIndex = 1
End If
Target.EntireRow.Interior.ColorIndex = IIf(Target.Row > iRow, 0, 23)
'
Application.ScreenUpdating = True
'
End Sub

A+

2test.xlsm (28.46 Ko)

Bonjour lcn, le forum,

je te retourne ton fichier modifié :

10test.xlsm (31.25 Ko)

dhany

Merci beaucoup, les commentaires que vous avez mis dans le codes m'ont également bien aidé à comprendre la méthode employée.

Re,

sujet clos, pas clos !...

Une mise à jour de la proposition précédente.

Cdlt.

6xlp-lcn.xlsm (28.95 Ko)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lastRow As Long, rng As Range
    If Target.CountLarge > 1 Then Exit Sub
    With Me
        lastRow = Cells(.Rows.Count, 1).End(xlUp).Row
        Set rng = .Cells(4, 1).Resize(lastRow - 3, 42)
        With rng
            .Resize(, 30).Interior.Color = 16247773
            .Offset(, 30).Resize(, 1).Interior.Color = 0
            .Offset(, 31).Resize(, rng.Columns.Count - 32).Interior.Color = 11850422
            .Offset(, 41).Resize(, 1).Interior.Color = 0
        End With
        If Not Intersect(Target, rng) Is Nothing Then
            .Cells(Target.Row, 1).Resize(, 42).Interior.Color = 6740479
        End If
    End With
End Sub

Nota : je note que pour certains, Target.CountLarge est apparue pour corriger l'erreur quand on selectionne la feuille entière.

Rechercher des sujets similaires à "couleurs colonnes definies surlignage ligne selectionne"