A voir également:
- Excel et VB
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Déplacer colonne excel - Guide
- Excel moyenne - Guide
6 réponses
Salut,
Tu peux faire une mise en forme conditionnelle =>Sélectionne tes cellules puis Format/Mise en forme conditionnelle....
Sino par macro, mais je pense que la Mise en forme conditionnelle suffira.....
A+
Tu peux faire une mise en forme conditionnelle =>Sélectionne tes cellules puis Format/Mise en forme conditionnelle....
Sino par macro, mais je pense que la Mise en forme conditionnelle suffira.....
A+
Hello Jack,
Essaie ça, à mettre dans le code de ta feuille.
Pour davantage de clarté, donne un nom à ta cellule (dans mon test, je l'ai appelée...Cellule !)
Dis-moi si ça colle.
Ajx.
Essaie ça, à mettre dans le code de ta feuille.
Pour davantage de clarté, donne un nom à ta cellule (dans mon test, je l'ai appelée...Cellule !)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Couleur As Integer Dim Plage As Range Set Plage = Range("Cellule") Select Case Plage.Value Case 1 Couleur = 6 Case 2 Couleur = 38 Case 3 Couleur = 3 Case Else Couleur = 0 End Select Plage.EntireRow.Interior.ColorIndex = Couleur End Sub
Dis-moi si ça colle.
Ajx.
Hello JackF,
Excuse-moi, je n'avais pas compris que tu voulais que ça fonctionne pour toute une plage de cellules dans une colonne.
Donc voici une nouvelle mouture.
Je suppose que toutes les cellules qui sont concernées forment un rectangle compact (une seule colonne ou non).
J'ai nommé cette plage "Cellules".
Voici un nouveau code :
Dis-moi si on progresse !
Excuse-moi, je n'avais pas compris que tu voulais que ça fonctionne pour toute une plage de cellules dans une colonne.
Donc voici une nouvelle mouture.
Je suppose que toutes les cellules qui sont concernées forment un rectangle compact (une seule colonne ou non).
J'ai nommé cette plage "Cellules".
Voici un nouveau code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Couleur As Integer Dim Plage As Range Set Plage = Range("Cellules") For Each Cellule In Plage Select Case Cellule.Value Case 1 Couleur = 6 Case 2 Couleur = 38 Case 3 Couleur = 3 Case Else Couleur = 0 End Select Cellule.EntireRow.Interior.ColorIndex = Couleur Next End Sub
Dis-moi si on progresse !
On va oublier ma question : précipitation, vagues souvenirs... Row c'est une ligne !!!... En fait, mon souci serait de borner les couleurs à une plage de cellules : exemple, si B3 vaut "D", que B3:AB3 soit en bleu ciel... D'ailleurs, peut-on trouver qq part le codage des couleurs Excel ?
Merci bcp, désolé pour la question précédente ! ;-)
Merci bcp, désolé pour la question précédente ! ;-)
Bonjour Alexis,
Je comprends moyennement ta question :
- est-ce que pour toi "D" représente la couleur bleu ciel, et que tu comptes associer une couleur à une lettre ?
- est-ce que c'est toujours (et seulement) en colonne B que la lettre doit être interprétée ? et dans ce cas, c'est toute la plage de B à AB, sur la ligne choisie, qui doit être colorée ?
Armojax.
Je comprends moyennement ta question :
- est-ce que pour toi "D" représente la couleur bleu ciel, et que tu comptes associer une couleur à une lettre ?
- est-ce que c'est toujours (et seulement) en colonne B que la lettre doit être interprétée ? et dans ce cas, c'est toute la plage de B à AB, sur la ligne choisie, qui doit être colorée ?
Armojax.
C'est vrai, je n'étais pas très clair !
Alors, en fait, je cherche à mettre en éviodence les WE automatiquement dans un planning : donc je veux mettre en surbrillance les samedi et dimanche (je recherche donc "S" et "D" dans la colonne des jours...).
Ensuite, je veux que toute la ligne soit en bleu ciel (j'ai trouvé le code : c'est 20 pour la valeur voulue).
Ca marche sans souci, mais ce serait plus propre si les colonnes en dehors du tabeau n'étaient pas elles aussi en bleu ciel...
Merci...
Alors, en fait, je cherche à mettre en éviodence les WE automatiquement dans un planning : donc je veux mettre en surbrillance les samedi et dimanche (je recherche donc "S" et "D" dans la colonne des jours...).
Ensuite, je veux que toute la ligne soit en bleu ciel (j'ai trouvé le code : c'est 20 pour la valeur voulue).
Ca marche sans souci, mais ce serait plus propre si les colonnes en dehors du tabeau n'étaient pas elles aussi en bleu ciel...
Merci...
Hi Armojax
Mieux, c'est pas possible :-))
C'est tout a fait ce que je voulais.
Encore merci et bien le bonjour aux Nantais et a sa région (J'ai des cousins a La Chapelle sur Erdre)
Mieux, c'est pas possible :-))
C'est tout a fait ce que je voulais.
Encore merci et bien le bonjour aux Nantais et a sa région (J'ai des cousins a La Chapelle sur Erdre)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Jérémie,
Exemple ci-dessous : comptage du nombre de cellules rouges dans la plage "A1:H20".
Exemple ci-dessous : comptage du nombre de cellules rouges dans la plage "A1:H20".
Sub RedCells() Dim Ctr As Long Dim Plage As Range Dim Cellule As Range Set Plage = Range("A1:H20") Ctr = 0 For Each Cellule In Plage If Cellule.Interior.ColorIndex = 3 Then Ctr = Ctr + 1 End If Next MsgBox "Il y a " & Ctr & " cellules rouges" End SubArmojax.
Re Alexis,
Voici 2 solutions, selon le cas :
1) Soit la macro se trouve dans le code de ta feuille, et réagit quand tu saisis "S" ou "D" dans la colonne B. Ça va convenir si tu saisis ton calendrier au fur et à mesure. Par contre, si tout est déjà saisi, il faudrait que tu réinterviennes sur chaque cellule pour déclencher la macro.
2)Soit un balayage des lignes colorie tout en une seule fois.
Tout dépend de ton contexte.
Vois ce qui te convient.
Ajx.
Voici 2 solutions, selon le cas :
1) Soit la macro se trouve dans le code de ta feuille, et réagit quand tu saisis "S" ou "D" dans la colonne B. Ça va convenir si tu saisis ton calendrier au fur et à mesure. Par contre, si tout est déjà saisi, il faudrait que tu réinterviennes sur chaque cellule pour déclencher la macro.
2)Soit un balayage des lignes colorie tout en une seule fois.
Tout dépend de ton contexte.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Lig As Integer If ActiveCell.Column <> 2 Then Exit Sub If ActiveCell.Value = "S" _ Or ActiveCell.Value = "D" Then Lig = ActiveCell.Row Range(Cells(Lig, 2), Cells(Lig, 28)).Interior.ColorIndex = 20 End If End Sub
Sub WeekEnds() Dim Lig As Integer For Lig = 1 To 36 ' adapter la fourchette !!! If Cells(Lig, 2).Value = "S" _ Or Cells(Lig, 2).Value = "D" Then Range(Cells(Lig, 2), Cells(Lig, 28)).Interior.ColorIndex = 20 End If Next End Sub
Vois ce qui te convient.
Ajx.
Merci énormément...
Pour être complet, afin de faire à 100 % ce que je souhaitais, j'ai fait 2 ou 3 modifs :
... et ça marche !!!Merci énormément...
Pour être complet, afin de faire à 100 % ce que je souhaitais, j'ai fait 2 ou 3 modifs :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lig As Integer
For Lig = 3 To 33 ' adapter la fourchette !!!
If Cells(Lig, 2).Value = "S" _
Or Cells(Lig, 2).Value = "D" Then
Range(Cells(Lig, 2), Cells(Lig, 30)).Interior.ColorIndex = 20
End If
If Cells(Lig, 2).Value = "L" _
Or Cells(Lig, 2).Value = "Ma" _
Or Cells(Lig, 2).Value = "Me" _
Or Cells(Lig, 2).Value = "J" _
Or Cells(Lig, 2).Value = "V" _
Or Cells(Lig, 2).Value = "..." _
Or Cells(Lig, 2).Value = "" Then
Range(Cells(Lig, 2), Cells(Lig, 30)).Interior.ColorIndex = 0
End If
Next
End Sub
... et ça marche !!!
Pour être complet, afin de faire à 100 % ce que je souhaitais, j'ai fait 2 ou 3 modifs :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Lig As Integer For Lig = 3 To 33 ' adapter la fourchette !!! If Cells(Lig, 2).Value = "S" _ Or Cells(Lig, 2).Value = "D" Then Range(Cells(Lig, 2), Cells(Lig, 30)).Interior.ColorIndex = 20 End If If Cells(Lig, 2).Value = "L" _ Or Cells(Lig, 2).Value = "Ma" _ Or Cells(Lig, 2).Value = "Me" _ Or Cells(Lig, 2).Value = "J" _ Or Cells(Lig, 2).Value = "V" _ Or Cells(Lig, 2).Value = "..." _ Or Cells(Lig, 2).Value = "" Then Range(Cells(Lig, 2), Cells(Lig, 30)).Interior.ColorIndex = 0 End If Next End Sub
... et ça marche !!!Merci énormément...
Pour être complet, afin de faire à 100 % ce que je souhaitais, j'ai fait 2 ou 3 modifs :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lig As Integer
For Lig = 3 To 33 ' adapter la fourchette !!!
If Cells(Lig, 2).Value = "S" _
Or Cells(Lig, 2).Value = "D" Then
Range(Cells(Lig, 2), Cells(Lig, 30)).Interior.ColorIndex = 20
End If
If Cells(Lig, 2).Value = "L" _
Or Cells(Lig, 2).Value = "Ma" _
Or Cells(Lig, 2).Value = "Me" _
Or Cells(Lig, 2).Value = "J" _
Or Cells(Lig, 2).Value = "V" _
Or Cells(Lig, 2).Value = "..." _
Or Cells(Lig, 2).Value = "" Then
Range(Cells(Lig, 2), Cells(Lig, 30)).Interior.ColorIndex = 0
End If
Next
End Sub
... et ça marche !!!
Merci de me répondre, effectivement la mise en forme conditionnelle marche bien mais juste pour la cellule concernée par contre je voudrais appliquer le formatage sur la ligne complète.
Merci quand même. :-)