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

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

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 !

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
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

bonjour

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 ?

Il faudrait le texte a rechercher et aussi la couleur a employer faites pour cela un userform


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

Bonjour Staple1600, bonjour gilbert_RGI

J'ai du mal m'expliquer.

C'est vrai qu'une MsgBox est d'afficher un Message

Mais j'ai déjà utilisé une macro (Ce n'est pas moi qui l'ai réalisée)
Où par le biais d'une MsgBox, cette macro demande de rentrer les coordonnées des cellules à traiter à l’intérieur cette MsgBox
Puis ensuite une autre MsgBox apparait demandant une valeur

Cette macro n’a bien sûr rien à voir avec ce que j’attends
Mais c’est le principe que j’aurai aimé retrouver

Pour essayer d’être plus clair
Voila ce que je souhaiterais si possible obtenir 🙄

1) Je lance la macro
2) Cette macro interactive me demande de rentrer à l’intérieur d’une MsgBox la zone concernée (Exemple G1 :G1000)
3) Puis une autre MsgBox apparait me demandant cette fois le texte concerné (Exemple quelconque « Voiture »)
4) Puis une dernière MsgBox apparait me demandant la couleur à attribuer (Exemple : Violet)

Finalité : toutes les cellules contenant le texte « Voiture » dans la zone G1 :G1000 prennent la couleur violet.
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Re,

Excuse-moi pour l’erreur
Mes connaissances sont un peu justes comme tu as pu le remarquer

J’en prends bonne note et je rectifie alors mon post

Pour essayer d’être encore plus clair
Voila ce que je souhaiterais si possible obtenir

1) Je lance la macro
2) Cette macro interactive me demande de rentrer à l’intérieur d’une ImputBox la zone concernée (Exemple G1 :G1000)
3) Puis une autre ImputBox apparait me demandant cette fois le texte concerné (Exemple quelconque « Voiture »)
4) Puis une dernière ImputBox apparait me demandant la couleur à attribuer (Exemple : Violet)

Finalité : toutes les cellules contenant le texte « Voiture » dans la zone G1 :G1000 prennent la couleur violet.
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

un exemple de code à mettre dans un module

Code:
Sub test1()
Dim Rg As Range
On Error Resume Next
Set Rg = Application.InputBox(prompt:="Sélectionner la ou les colonne(s)", Type:=8)
If Rg Is Nothing Then MsgBox "Boîte de dialoque annuler": Exit Sub
MsgBox Rg.Address 
End Sub
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Pour le 1) : C'est exactement ce que je souhaitais

maintenant pour la suite

Code:
Sub test1()
    Dim Rg As Range
    Dim coul As String
    On Error Resume Next
    Set Rg = Application.InputBox(prompt:="Sélectionner la colonne", Type:=8)
    If Rg Is Nothing Then MsgBox "Boîte de dialoque annuler": Exit Sub
    MsgBox Rg.Address
    coul = InputBox("Quelle couleur")
    'MsgBox coul
    Select Case coul
    Case "jaune"
        MsgBox "vous avez choisi " & coul
    Case "bleue"
        MsgBox "vous avez choisi " & coul
    Case "rouge"
        MsgBox "vous avez choisi " & coul
    Case "orange"
        MsgBox "vous avez choisi " & coul
    Case Else
        MsgBox "cette couleur n'est pas validée"
    End Select
End Sub

alors après la dernière Msgbox il faut encore une suite
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Pour la sélection de la zone et de la couleur, c’est parfait 😱

Reste la sélection du texte

Et surtout le plus dur le traitement
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

pénard le Michou9 😛

Code:
Sub test1()
    Dim Rg As Range
    Dim coul As String, letexte As String
    On Error Resume Next
    Set Rg = Application.InputBox(prompt:="Sélectionner la colonne", Type:=8)
    If Rg Is Nothing Then MsgBox "Boîte de dialoque annuler": Exit Sub
questcoul:
    coul = InputBox("Quelle couleur")
    Select Case coul
    Case "rouge"
        MsgBox "vous avez choisi " & coul
        couleur = RGB(255, 32, 12)    'exemple
        GoTo suite
    Case "bleue"
        MsgBox "vous avez choisi " & coul
        GoTo suite
    Case "jaune"
        MsgBox "vous avez choisi " & coul
        GoTo suite
    Case "orange"
        MsgBox "vous avez choisi " & coul
        GoTo suite
    Case Else
        MsgBox "cette couleur n'est pas validée": GoTo questcoul
    End Select
suite:
    letexte = InputBox("inscrivez pour quel texte")
    col = Right(Rg.Address, 1)
    derl = Range(col & "65536").End(xlUp).Row
    For i = 5 To derl
        If Cells(i, col).Value = letexte Then
            Cells(i, col).Interior.Color = couleur
        End If
    Next
End Sub

reste à ajouter le code RGB pour chaque couleur comme dans le rouge
 
Dernière édition:
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

pénard le Michou9

Je suis suppoter !
C'est la seule chose que mes moyens me permettent
Alors j'encourage 😛

La saisie de la couleur, la zone, le texte
Fonctionne impeccable

Mais je n’obtiens aucun changement. 😡

J’ai essayé avec le rouge dont le code est déjà dans la macro

Je précise qu’après la saisie de la zone
La confirmation de la zone n’est pas retournée
Comme c’était le cas avec le 1er jet
Cela ne me dérange pas du tout
Mais serait-ce l’explication du problème 😕
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Re,

Merci pour le tableau des couleurs

Mais ce que je disais, c’est que en essayant avec la couleur rouge
Dont le code est déjà rentré
Il n’y pas de changement de couleur qui s’opère

J’ai essayé avec plusieurs textes
Et rien ne se passe
 
Re : Affecter une couleur à des cellules suivant leur contenu au format texte

Bonjour

Peinard le Michou et 100% satisfait 😱

En fait je commettais une erreur dans la sélection de la zone
Je continuais de rentrer ma zone comme dans la précédente macro
Soit « G1 :G5000 »
Alors que je devais juste cliquer sur la colonne G 😡

Je viens de la tester dans mon fichier
Cela fonctionne parfaitement
Et en plus c’est ultra rapide
Une merveille 😱😱

En prime une bonne leçon dans le domaine des macros

Un grand merci
Et bonnes fêtes de fin d’année 🙄
 
- 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

M
Réponses
11
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…