Affecter une couleur à des cellules suivant leur contenu au format texte

Michou9

XLDnaute Occasionnel
Bonjour le Forum

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.

Merci d’avance pour une aide éventuelle
 

gilbert_RGI

XLDnaute Barbatruc
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Bonjour le Forum

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.

Merci d’avance pour une aide éventuelle


bonjour

à 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)
 
Dernière édition:

Gedch

XLDnaute Occasionnel
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Bonjour

Merci pour cette réponse rapide


Cela fonctionne bien, mais une seule fois et uniquement quand je frappe le texte.

Si le texte est déjà rentré, cela ne fonctionne pas.
 

gilbert_RGI

XLDnaute Barbatruc
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Bonjour

Merci pour cette réponse rapide


Cela fonctionne bien, mais une seule fois et uniquement quand je frappe le texte.

Si le texte est déjà rentré, cela ne fonctionne pas.

et avec ceci

à mettre dans la feuille

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

Michou9

XLDnaute Occasionnel
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Cette fois cela fonctionne bien

Mais que pour la colonne A

Que faut-il modifier pour que cela fonctionne uniquement avec la colonne G
J’ai essayé de remplacer A1:A100 par G1:G100

Mais c’est toujours les cellule de la colonne A qui sont modifiées
 

Dull

XLDnaute Barbatruc
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Salut Michou9, Gilbert:), le Forum

Que faut-il modifier pour que cela fonctionne uniquement avec la colonne G
J’ai essayé de remplacer A1:A100 par G1:G100
Oui mais il faut aussi modifier la Sub Test

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
...
je te laisse compléter le Code de Gilbert



Bonne Journée
 

Michou9

XLDnaute Occasionnel
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 !
 

Dull

XLDnaute Barbatruc
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Salut Michou, Gilbert :), le Forum

Cent fois sur le métier tu remettras ton ouvrage:rolleyes:
S'il te plais, fais nous un grand plaisir à Gilbert et à moi: relis ton code.

1/ Si tu as bien lu mon dernier post j'avais commencé le code :)
2/ Cells(i, ?) c'est partout qu'il faut faire les modifications sur le ?

si tu suis ces recommandations tu verras que ton code fonctionne

Bon courage et à te relire

Bonne Journée et Bonnes Fêtes :)
 
Dernière édition:

Michou9

XLDnaute Occasionnel
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 :D

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
 

Michou9

XLDnaute Occasionnel
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Bonsoir

Oui c'est vrai, je peux faire comme cela

Par contre cela ne résout pas mon problème
Le fonctionnement est toujours très aléatoire !

Serait-il possible que cette macro soit plutôt interactive avec par exemple une MsgBox pour rentrer le contenu texte d’un type de cellule ?

Le traitement se ferait alors sur un seul contenu texte à la fois parmi toutes les cellules de la colonne G

A bientôt
Cette macro serait donc appelée uniquement en cas de changement et donc autant de fois que de type de contenu texte.
 

Staple1600

XLDnaute Barbatruc
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Bonsoir

Bonsoir
Serait-il possible que cette macro soit plutôt interactive avec par exemple une MsgBox pour rentrer le contenu texte d’un type de cellule ?

Non ce n'est pas possible

La destinée d'une MsgBox est d'afficher un Message.

Elle ne sait pas "rentrer" de valeur mais simplement les afficher ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 644
Messages
2 090 447
Membres
104 537
dernier inscrit
POTDGEL