Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

vba excel - colorisation sous conditions

  • Initiateur de la discussion Initiateur de la discussion lili4905
  • 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 !

L

lili4905

Guest
Bonjour,

Ma feuille Excel contient la colonne O de type :

O
1 Région
2 Proxi
3 Nord
4 PACA
5 Nord
6 …


Le nb de ligne n’est jamais identique.

Grâce à un bouton relié à une macro, j’aimerais indiquer :
- la cellule Proxi en fond beige,
- la cellule « Est » en fond bleu écriture blanche,
- la cellule Nord en fond rouge…

J’hésite entre plusieurs instructions : for next, for each, do loop, ou if end if…

Je vous envoie 2 de mes essais qui ne fonctionnent malheureusement pas…




Sub Couleur()
Dim zone As Range 'Zone qui contient la base de données
Set zone = Range("O2").CurrentRegion

Dim Nom As String

If ActiveCell.FormulaR1C1 = "Proxi" Then
Selection.Interior.ColorIndex = 40

ElseIf ActiveCell.FormulaR1C1 = "Est" Then
Selection.Font.ColorIndex = 2
Selection.Interior.ColorIndex = 5

ElseIf ActiveCell.FormulaR1C1 = "Nord" Then
Selection.Interior.ColorIndex = 3

ElseIf ActiveCell.FormulaR1C1 = "PACA" Then
Selection.Interior.ColorIndex = 7

Else: Selection.Font.ColorIndex = 3

End If

End Sub



Sub CouleurBis()

Dim zone As Range 'Zone qui contient la base de données
Set zone = Range("O2").CurrentRegion

Dim CNom As Integer 'compteur de données
Dim F1 As Worksheet '1er onglet
Set F1 = Worksheets(1)
NbL = zone.Rows.Count

For CNom = 1 To NbL

If F1.Cells(CNom, 2).FormulaR1C1 = "Proxi" Then
ActiveCell.Interior.ColorIndex = 40

ElseIf ActiveCell.FormulaR1C1 = "Est" Then
ActiveCell.Font.ColorIndex = 2
ActiveCell.Interior.ColorIndex = 5

ElseIf ActiveCell.FormulaR1C1 = "Nord" Then
ActiveCell.Interior.ColorIndex = 3

ElseIf ActiveCell.FormulaR1C1 = "PACA" Then
ActiveCell.Interior.ColorIndex = 7

Else: ActiveCell.Font.ColorIndex = 3

End If

Next CNom

End Sub



Merci de votre aide.
 
Re : vba excel - colorisation sous conditions

Bonjour


Je te conseille:

Select Case
Code:
Sub Couleur_ter()
Dim zone As Range 'Zone qui contient la base de données
Set zone = Range("O2").CurrentRegion
Application.ScreenUpdating = False
Dim c As Range
For Each c In zone
If Not IsEmpty(c) Then
Select Case c.Value
Case Is = "Proxi"
c.Interior.ColorIndex = 40
Case Is = "Est"
c.Font.ColorIndex = 2
c.Interior.ColorIndex = 5
Case Is = "Nord"
c.Interior.ColorIndex = 3
Case Is = "PACA"
c.Interior.ColorIndex = 7
Case Else
c.Font.ColorIndex = 3
End Select
End If
Next c
Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Re : vba excel - colorisation sous conditions

Bonjour,

Staple1600, votre macro réponds à mes attentes mais j'aimerais qu'elle traite uniquement les données de la colonne O car tout le reste est écrit en rouge, est-ce possible?

merci
 
- 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
15
Affichages
788
Réponses
4
Affichages
735
Réponses
5
Affichages
914
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…