• Initiateur de la discussion Initiateur de la discussion pascal_tie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pascal_tie

Guest
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

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
 
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
 
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:
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

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.
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
14
Affichages
487
Réponses
15
Affichages
827
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
599
Retour