Grise des cellules

pascal_tie

XLDnaute Nouveau
Bonjour,

Je souhaite griser les cellules de ma feuille lorsqu'elles sont vides.

J'ai essayer de modifier le code suivant :

Option Explicit


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lejour As Range
For Each Lejour In Range("A4:A32")
If Lejour.Value = "samedi" Or Lejour.Value = "dimanche" Then
Range(Cells(Lejour.Row, 1), Lejour.Offset(0, 5)).Interior.ColorIndex = 15
Else
Range(Cells(Lejour.Row, 1), Lejour.Offset(0, 5)).Interior.ColorIndex = xlNone
End If
Next Lejour
End Sub

Mais je n'y arrive pas.

Merci de votre aide

Pascal
 

Pièces jointes

  • Feuille match.zip
    32.6 KB · Affichages: 68
  • Feuille match.zip
    32.6 KB · Affichages: 71
  • Feuille match.zip
    32.6 KB · Affichages: 72

kllmoon

XLDnaute Occasionnel
Re : Grise des cellules

En 2 secondes avec l'option d'enregistrer les macros, j'ai compilé le code suivant. C'est relativement simple a faire considérant que tu as deux types de constantes, du texte et des chiffre. Alors ce que j'ai fait c'est mettre ton tableau en gris et utiliser la fonction atteindre pour remettre les case contenant du texte ou des chiffres en blanc. Essais le code suivant si la suggestion de kjin ne fonctionne pas.

Code:
Sub gris()
    Range("Z7:BH26").Select
    With Selection.Interior
        .ColorIndex = 48
        .Pattern = xlSolid
    End With
    Range("Z7:AC26,AT7:AW26,AM7:AP26").Select
    Range("AM7").Activate
    Selection.SpecialCells(xlCellTypeConstants, 2).Select
    Selection.Interior.ColorIndex = xlNone
    Range("AD7:AL26,AQ7:AS26,AX7:BH26").Select
    Range("AX7").Activate
    Selection.SpecialCells(xlCellTypeConstants, 1).Select
    Selection.Interior.ColorIndex = xlNone
End Sub
 

pascal_tie

XLDnaute Nouveau
Re : Grise des cellules

Re-bonjour,

Merci kjin, kllmoon pour vos réponses. Pour le projet, je vais utilisé la solution de kllmoon.

Autre petite question, cette macro peut elle être automatique ?
C'est à dire si je remplis une case celle-ci redevient blanche.

Merci

A+

Pascal
 

kjin

XLDnaute Barbatruc
Re : Grise des cellules

re,
A la lecture de ton fichier, je ne vois pas le rapport entre le code que tu tentais de modifier et ce que tu veux faire ?!
En outre, il vaut mieux partir d'un tableau avec les cellules grisées et ensuite tester la valeur de la cellule active pour éviter de recalculer toute la feuille à chaque sélection
Code:
Private Sub [COLOR="Blue"]Worksheet_Change[/COLOR](ByVal Target As Range)
If Not Intersect(Range("Z7:BE26"), Target) Is Nothing Then
Target.Interior.ColorIndex = IIf(Target = "", 15, xlNone)
End If
End Sub
Edit :La solution la plus simple restant la Mise en Forme Conditionnelle de tes cellules
Fais signe si tu ne sais pas faire

A+
kjin
 
Dernière édition:

pascal_tie

XLDnaute Nouveau
Re : Grise des cellules

Re bonjour,

Merci pour ton aide. Mon souhaits est d'avoir toutes les cellules de la feuilles grises sauf celle déjà remplis et celle que je remplit.

Je te joint mon fichier avec le rendu finale. Si cela peut aider.

Merci pour ton aide

Pascal
 

Pièces jointes

  • Feuille match.zip
    35.8 KB · Affichages: 85
  • Feuille match.zip
    35.8 KB · Affichages: 79
  • Feuille match.zip
    35.8 KB · Affichages: 78

kjin

XLDnaute Barbatruc
Re : Grise des cellules

Re,
Comme je te l'ai dis, une simple MFC suffira
Sélectionne une cellule grise (de la feuille :D) puis Menu/Format/Mise en Forme Conditionnelle pour voir les formules
A+
kjin
 

Pièces jointes

  • Feuille match_Mfc.zip
    30.8 KB · Affichages: 84

kllmoon

XLDnaute Occasionnel
Re : Grise des cellules

Tu ne peux pas activer ta macro à chaque entrée de données. Par contre, tu peux la mettre pour qu'elle s'active lorsque tu sélectionne la feuille en la mettant sur la feuille voulue sous le format :

Private Sub Worksheet_Activate()
...
End sub

Ainsi, ta macro s'actualisera automatiquement lorsque tu sélectionneras la feuille. De plus, tu devrais rajouter un if error / exit sub dans ta formule pour ne pas qu'il t'énerve quand ta plage de données est vide.
 

pascal_tie

XLDnaute Nouveau
Re : Grise des cellules

Merci pour votre réponse,

De plus lorsque tu me dit " Par contre, tu peux la mettre pour qu'elle s'active lorsque tu sélectionne la feuille en la mettant sur la feuille voulue sous le format :

Private Sub Worksheet_Activate()
...
End sub

Ainsi, ta macro s'actualisera automatiquement lorsque tu sélectionneras la feuille. De plus, tu devrais rajouter un if error / exit sub dans ta formule pour ne pas qu'il t'énerve quand ta plage de données est vide.
"

Je ne comprends pas se que tu veux dire. Je ne sais pas au mettre le code Private Sub.

Le principe que je recherche ai d'avoir les cellules grises et lorsque je remplis les cellules la couleur disparaitre

Je remets le fichier avec les modifications que j'ai apporter.

Merci pour toutes vos aides.

A+

Pascal
 

Pièces jointes

  • Feuille match.zip
    38.9 KB · Affichages: 77
  • Feuille match.zip
    38.9 KB · Affichages: 79
  • Feuille match.zip
    38.9 KB · Affichages: 76

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz