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 à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 12
    Points
    12
    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
    Points : 4 297
    Points
    4 297
    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 à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 12
    Points
    12
    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 à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 12
    Points
    12
    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
    Points : 4 297
    Points
    4 297
    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 à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 12
    Points
    12
    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
    Points : 15 546
    Points
    15 546
    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 à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 12
    Points
    12
    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
    Points : 15 546
    Points
    15 546
    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
    Points : 15 546
    Points
    15 546
    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 à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 12
    Points
    12
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    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.

  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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Alors, ousk, on persiste en VBA?

  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
    Points : 15 546
    Points
    15 546
    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 expérimenté 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
    Points : 1 405
    Points
    1 405
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    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.

  17. #17
    Membre expérimenté 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
    Points : 1 405
    Points
    1 405
    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
    Points : 15 546
    Points
    15 546
    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