IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Changement couleur cellule EXCEL en fonction du texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut Changement couleur cellule EXCEL en fonction du texte
    Bonjour, je suis débutant complet sur l'utilisation de macro, vba,...sur excel, voila pourquoi je vous demande conseil.

    J'ai une colonne remplie de A, B et C.
    Je souhaite qu'à chaque ouverture de mon tableau, une macro mette :
    - toutes les cellules de la colonne avec le texte A en vert
    - toutes les cellules de la colonne avec le texte B en orange
    - toutes les cellules de la colonne avec le texte C en rouge

    Est-ce posiible , compliqué?

    Merci par avance...
    Bonne fin de journée.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    si je cliques sur le a de la colonne a puis fait format cellule police couleur
    pas trop

    c'est facile d'avoir une feuille qui ressemble à un perroquet avarié

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    Merci, hi hi hi

    Je souhaiterai automatiser ceci par une macro qui parcourt toute la colonne à l'ouverture. Puis en fonction du texte de la cellule lui attribue une certaine couleur..

    Ca devient plus compliqué là...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    J'essaye ça mais il veut pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub aaa()
    Range("K1").Select
    Do While ActiveCell <> ""
    If ActiveCell = "OK" Then
    ActiveCell.Offset(0, 1).Select
    Selection.Interior.ColorIndex = 4
    ActiveCell.Offset(1, -1).Select
    Loop
    End If
    End Sub

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub aaa() 
    dim ou as integer
    ou =0
    Range("K1").Select 
    Do While ActiveCell <> "" 
    ou=ou+1
    If ActiveCell = "OK" Then 
    ActiveCell.Offset(0, ou).Select 
    Selection.Interior.ColorIndex = 4 
    ActiveCell.Offset(1, -1).Select 
    Loop 
    End If 
    End Sub

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    Merci mais il me met le même message - boucle sans do - je comprends pas...
    arf...

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Range("B1:B32").Select
        Selection.FormatConditions.Delete
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""OK"""
        Selection.FormatConditions(1).Interior.ColorIndex = 44
    Te peint en orange les cellules B1 à B32 contenant OK

    A+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    Merci mais ca bug, c étrange, comment je peux lui dire de commencer à la cellule K10, et de faire tte celle en dessous?

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ou tu connais ta dernière ligne ou tu la connais pas.
    Tu la connais, dans mon exemple remplace Range("B1:B32").Select
    par K10:K...Ta dernière ligne
    Tu ne la connais pas, et tu la cherches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DernièreLigne = Cells(65535, 11).End(xlUp).Row
    et tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(10,11),Cells(DernièreLigne,11)).Select
    11 pour K

    A+

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        DernièreLigne = Cells(65535, 11).End(xlUp).Row
        Range(Cells(10,11),Cells(DernièreLigne,11)).Select
        Selection.FormatConditions.Delete
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""OK"""
        Selection.FormatConditions(1).Interior.ColorIndex = 44
    A+

    Edit
    Et si ce n'est pas OK, ton critère, tu remplaces par une variable

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    Merci beaucoup, ca marche nickel....
    Du coup, j'ai avancé et depuis, évidemment des nouveau problèmes.
    J'ai mis ma macro en auto_open , elle démarre des l'ouverture et met les couleurs qui vont bien.

    Mais , imaginons une case A=Bleu. Je remplace le A par un B(=vert):et ben la couleur change pas, est ce kil y a un moyen de résoudre ce problème???

    Merci par avance.

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Me paraît bien compliquer de faire du VBA pour ça alors que le Format conditionnel d'Excel convient parfaitement.

    Edit -> Je viens de voir que c'est Mise en forme conditionnelle.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  13. #13
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Alors, ousk, on persiste en VBA?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour chaque valeur tu changes la condition du format (FormatConditions(n) ) en l'indexant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Selection.FormatConditions.Delete
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""A"""
        Selection.FormatConditions(1).Font.ColorIndex = xlAutomatic
        Selection.FormatConditions(1).Interior.ColorIndex = 4
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""B"""
        Selection.FormatConditions(2).Font.ColorIndex = xlAutomatic
        Selection.FormatConditions(2).Interior.ColorIndex = 7
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""C"""
        Selection.FormatConditions(3).Font.ColorIndex = xlAutomatic
        Selection.FormatConditions(3).Interior.ColorIndex = 8
    A+

  15. #15
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Très franchement, je rejoins Alain... Y'a la mise en forme conditionnelle, pour faire ça.

  16. #16
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    D'autant que c'est vite fait.

    On sélectionne toute la colonne.

    On va dans le menu.

    On met les 3 conditions.

    Fini.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  17. #17
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Ben ouais !

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Par soft, c'est exactement ce que j'ai fait en enregistrant la macro. Sauf que le format peut ainsi être appliqué à une plage variable.
    S'il s'agit d'une plage fixe (NoColonne et première ligne invariables) je pense comme vous.

    A+

Discussions similaires

  1. changer couleur cellule excel vb
    Par answer911 dans le forum VB.NET
    Réponses: 0
    Dernier message: 30/05/2013, 15h41
  2. Copier contenues cellule excel dans une fichier texte
    Par nicolas21240 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/12/2007, 15h25
  3. [VBA] Modifier des cellules excel en fonction de leur couleur
    Par Tententai dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/03/2007, 18h14
  4. Réponses: 3
    Dernier message: 21/06/2006, 16h39
  5. PB couleur cellule excel
    Par liviertlse dans le forum Langage
    Réponses: 4
    Dernier message: 21/03/2006, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo