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 !
Je souhaiterais pouvoir affecter une couleur à certaines cellules d’une même colonne en fonction de leur contenu « Texte »
Serait-il possible de réaliser une macro (il y a beaucoup de cellules concernées) pour faire cette tâche qui serait bien longue autrement.
Je ne souhaite pas utiliser une mise en forme conditionnelle
Exemple colonne G
Toutes les cellules contenant le texte Exemple01 en Bleu
Toutes les cellules contenant le texte Exemple02 en Jaune
Toutes les cellules contenant ………..
Comme il y a plusieurs colonnes possibles et qu’il y beaucoup de « textes » différents, il serait nécessaire pour le choix de la colonne que celle-ci soit paramétrable et pour les textes des cellules quelle soit interactive.
Je souhaiterais pouvoir affecter une couleur à certaines cellules d’une même colonne en fonction de leur contenu « Texte »
Serait-il possible de réaliser une macro (il y a beaucoup de cellules concernées) pour faire cette tâche qui serait bien longue autrement.
Je ne souhaite pas utiliser une mise en forme conditionnelle
Exemple colonne G
Toutes les cellules contenant le texte Exemple01 en Bleu
Toutes les cellules contenant le texte Exemple02 en Jaune
Toutes les cellules contenant ………..
Comme il y a plusieurs colonnes possibles et qu’il y beaucoup de « textes » différents, il serait nécessaire pour le choix de la colonne que celle-ci soit paramétrable et pour les textes des cellules quelle soit interactive.
à vous de changer le nom et la couleur ainsi que la colonne (ici colonne A)
mettre ce code dans la feuille concernée
Code:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, [A1:A100]) Is Nothing And Target.Count = 1 Then
Select Case Target.Value
Case "Dupond"
Target.Interior.ColorIndex = 33
Case "Adam"
Target.Interior.ColorIndex = 4
Case "Dupont"
Target.Interior.ColorIndex = 35
Case "Durand"
Target.Interior.ColorIndex = 43
Case "Duval"
Target.Interior.ColorIndex = 22
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End If
End Sub
Attention à la casse (Majuscule Minuscule par exemple)
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, [A1:A100]) Is Nothing Then
test
End If
End Sub
a mettre dans un module
Code:
Sub test()
For i = 1 To Range("a65536").End(xlUp).Row
Select Case UCase(Cells(i, 1).Value)
Case "DUPOND"
Cells(i, 1).Interior.ColorIndex = 33
Case "ADAM"
Cells(i, 1).Interior.ColorIndex = 4
Case "DUPONT"
Cells(i, 1).Interior.ColorIndex = 35
Case "DURAND"
Cells(i, 1).Interior.ColorIndex = 43
Case "DUVAL"
Cells(i, 1).Interior.ColorIndex = 22
Case Else
Cells(i, 1).Interior.ColorIndex = xlNone
End Select
Next
End Sub
Sub test()
For i = 1 To Range("A65536").End(xlUp).Row
Select Case UCase(Cells(i, 1).Value)
Case "DUPOND"
Cells(i, 1).Interior.ColorIndex = 33
Case "ADAM"
Cells(i, 1).Interior.ColorIndex = 4
Case "DUPONT"
Cells(i, 1).Interior.ColorIndex = 35
Case "DURAND"
Cells(i, 1).Interior.ColorIndex = 43
Case "DUVAL"
Cells(i, 1).Interior.ColorIndex = 22
Case Else
Cells(i, 1).Interior.ColorIndex = xlNone
End Select
Next
End Sub
Cells(i, 1) 1 pour la première colonne Soit la colonne A donc
Cells(i, ?) pour la ? colonne soit la Colonne G
par quoi faut-il remplacer le ? pour que se soit la Colonne G
Sub test()
For i = 1 To Range("G65536").End(xlUp).Row
...
Re : Affecter une couleur à des cellules suivant leur contenu au format texte
Bonjour Dull et Gilbert
Merci Dull
Effectivement cela va bien mieux
L’explication était importante !
C’est mieux, mais cependant c’est pas encore cela
Il remplace la couleur du 1ère cellule correspondante,
Mais pas les suivantes
Ex : A1 Dupond
A5 Dupond
A7 Dupond
Il change la couleur de A1, mais pas A5 et A7
Plus étrange ??
Si j’efface le contenu de la cellule A et que je rechange manuellement la couleur de cette cellule
La macro reste opérationnelle alors que la cellule est vide !
Et A5 et A7 ne changent toujours pas !
Re : Affecter une couleur à des cellules suivant leur contenu au format texte
Bonjour Dull et Gilbert
Merci encore pour votre aide
J'espère que vous avez passés de bonnes fêtes 😀
Voici la macro avec les modifications
Code:
Sub test()
For i = 1 To Range("G65536").End(xlUp).Row
Select Case UCase(Cells(i, 7).Value)
Case "DUPOND"
Cells(i, 7).Interior.ColorIndex = 20
Case "ADAM"
Cells(i, 7).Interior.ColorIndex = 10
Case "DUPONT"
Cells(i, 7).Interior.ColorIndex = 35
Case "DURAND"
Cells(i, 7).Interior.ColorIndex = 43
Case "DUVAL"
Cells(i, 7).Interior.ColorIndex = 22
Case Else
Cells(i, 7).Interior.ColorIndex = xlNone
End Select
Next
End Sub
Code:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, [G1:G5000]) Is Nothing Then
test
End If
End Sub
Je pense que cette fois, j'ai bien retranscrit les bonnes directives
Cela semble fonctionner assez bien avec un petit tableau
En revanche avec mon tableau (Près de 5000 lignes)
C’est plus que très aléatoires
J’ai une quinzaines de textes différents à gérer avec cette macro
Les 3 premiers ça passe, mais pas les autres
De plus dès que je change un nom, la macro s’active d’elle-même
Ce qui est logique, puisque la macro est en partie dans la feuille
Mais vu le nombre de lignes !
Cela me prend un temps fou, à chaque frappe
- 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