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

Coloré des cellules en VBA en fonction d'une selection

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

admin3s

XLDnaute Nouveau
Bonjour a tous,

Ce forum met très utiles et riche en informations.
Mais je n'ai pas trouve de solution pour mon PB actuel...

je vous expose mon PB.

J’ai récupérer un bout de code VBA pour colorer une cellule en fonction d'un critère (sa fonctionne sans PB) mais je voudrai que selon le critère sa colore plusieurs cellule EX: B1 + C1 + D1 + E1

Mon fichier et un planning donc il faut que l'opération se répète sur tous les jours de l'année...

Et je voudrais aussi utiliser la fonction RGB maos je n'y arrive pas !!!

Dans l'attente d'une reponse je continu mes recherches

Merci d'avance pour votre aide

Voici ci dessous mon petit bout de code VBA :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("D😀")) Is Nothing Then
For Each cell In Target
If cell.Value = "SF" Then
cell.Interior.ColorIndex = RGB(0, 255, 0)
ElseIf cell.Value = "SD" Then
cell.Interior.ColorIndex = 5
ElseIf cell.Value = "CD" Then
cell.Interior.ColorIndex = 56
ElseIf cell.Value = "GHV" Then
cell.Interior.ColorIndex = 6
ElseIf cell.Value = "GL" Then
cell.Interior.ColorIndex = 7
ElseIf cell.Value = "TT" Then
cell.Interior.ColorIndex = 3
ElseIf cell.Value = "" Then
cell.Interior.ColorIndex = 0
End If
Next
End If

End Sub
 
Re : Coloré des cellules en VBA en fonction d'une selection

Bonjour Admin3s,

Voici une solution à tester :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D:D")) Is Nothing Then
        For Each cell In Target
            Select Case cell.Value
                Case "SF"
                    cell.Interior.Color = RGB(0, 255, 0)
                Case "SD"
                    cell.Interior.ColorIndex = 5
                Case "CD"
                    cell.Interior.ColorIndex = 56
                Case "GHV"
                    cell.Interior.ColorIndex = 6
                Case "GL"
                    cell.Interior.ColorIndex = 7
                Case "TT"
                    cell.Interior.ColorIndex = 3
                Case Else
                    cell.Interior.ColorIndex = 0
            End Select
        Next
    End If
End Sub
 
Re : Coloré des cellules en VBA en fonction d'une selection

Pour utiliser la fonction RGB qui permet de s'affranchier de la limite des 56 couleurs indexées d'Excel, il faut utiliser la propriete Color et non ColorIndex
 
Re : Coloré des cellules en VBA en fonction d'une selection

🙂 Bonjour,

Essaie le code ci-dessous en remplaçant "Zone" par le nom adequat et 10 et 20 par tes propres critères.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("zone")) Is Nothing Then
For Each Cell In Target
If Cell.Value = 10 Then
Cell.Select
With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
ElseIf Cell.Value = 20 Then
Cell.Select
With Selection.Interior
        .ColorIndex = 7
        .Pattern = xlSolid
    End With
End If
Next
End If
End Sub
🙂
 
Re : Coloré des cellules en VBA en fonction d'une selection

Pour répondre à la question de colorer plusieurs cellules, supposons que tu indiques "SF" en B1 et que tu veux colorer la cellule B1 et les 3 cellules sur sa droite
Code:
If Target.Value = "SF" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.ColorIndex = 6
End If
 
Re : Coloré des cellules en VBA en fonction d'une selection

C'est bon sa fonctionne !!!

Voici ci-dessous le code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "SF" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(255, 255, 153)
End If

If Target.Value = "SD" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(158, 215, 250)
End If

If Target.Value = "CD" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(251, 209, 91)
End If

If Target.Value = "GHV" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(185, 253, 208)
End If

If Target.Value = "GL" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(254, 184, 254)
End If

If Target.Value = "TT" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.Color = RGB(255, 91, 91)
End If

If Target.Value = "" Then
Range(Target.Address, Target.Offset(0, 3).Address).Interior.ColorIndex = 0
End If

End Sub

Si quelqu’un voit une amélioration à apporter sur ce code je suis preneur….
Encore un grand merci a vous tous....
 
Re : Coloré des cellules en VBA en fonction d'une selection

Sans parler VBA qui ne me cause pas (!) j'utilise, pour la même chose que toi, les "Mises en forme conditionnelle" que tu trouves dans le menu "Format"...

En espérant t'avoir aidé...
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
3
Affichages
298
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…