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 :

Macro pour mettre un fond couleur par rapport à un texte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de hoyohoyo
    Profil pro
    Directeur de projet
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Par défaut Macro pour mettre un fond couleur par rapport à un texte
    Bonjour, je travaille dans la fibre, je prépare des fichier excel avec les couleurs la fibre.

    01:ROU
    02:BLF
    03:VER
    04:JAU
    05:VIO
    06:BLA
    07:ORA
    08:GRI
    9:MAR
    10:NOI
    11:BLC
    12:ROS
    ce genre de case est répété, cela me fait 200 Ligne, c'est un fichier excel généré par une application.
    les techniciens doivent déchiffrer pour savoir quel fibre utiliser

    je passe mes après midi à mettre un fond de couleur case par case...

    J'aimerai savoir comment faire une macro pour mettre un fond de couleur par rapport à un texte.
    Exemple pour les case où se trouve le texte 01:ROU j'aimerais un fonds rouge


    01:ROU (rouge)
    02:BLF (bleu foncé)
    03:VER (vert)
    04:JAU (jaune)
    05:VIO (violet)
    06:BLA (blanc)
    07:ORA (orange)
    08:GRI (gris)
    09:MAR (marron)
    10:NOI (noir)
    11:BLC (bleu clair)
    12:ROS (rose)
    Pouvez vous m'aider SVP ?
    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Par défaut
    Bonjour,

    Commence par utiliser l'enregistreur de macro et mémorise les 12 actions de couleurs dans l'ordre.

    Ensuite, poste ton code.

    Je reviendrais vers toi.

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, correspondance entre les couleurs de base et ColorIndex
    en utilisant le macro recorder tu auras une ébauche de code ( à optimiser manuellement )
    Images attachées Images attachées  

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    un exemple pour les 7 premières couleurs

    je te laisse finir les derniers :

    - ajouter les mots dans TabVal
    - chercher le numéro de couleur se rapportant à la couleur voulue (utiliser l'enregistreur de macro)

    tout les reste du code est autonome

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Couleur()
     
    Dim TabVal() As Variant
    Dim TabCoul() As Variant
    TabVal = Array("1:ROU", "2:BLF", "3:VER", "4:JAU", "5:VIO", "6:BLA", "7:ORA")
    TabCoul = Array(255, 12611584, 5287936, 65535, 10498160, -1, 49407)
     
    With Worksheets("Feuil1")
        For i = 1 To .UsedRange.Rows.Count
            For j = LBound(TabVal) To UBound(TabVal)
                If .Cells(i, 1) Like "*" & TabVal(j) & "*" Then
                    .Cells(i, 1).Interior.Color = TabCoul(j)
                    Exit For
                End If
            Next j
        Next i
    End With
     
    End Sub

  5. #5
    Membre averti Avatar de hoyohoyo
    Profil pro
    Directeur de projet
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    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
    14
    15
    16
    17
    18
    19
    Sub CouleurModuleC()
     
    Dim TabVal() As Variant
    Dim TabCoul() As Variant
    TabVal = Array("1:ROU", "2:BLF", "3:VER", "4:JAU", "5:VIO", "6:BLA", "7:ORA", "08:GRI", "19:MAR", "10:NOI", "11:BLC", "12:ROS", "09:MAR", "10:VEC")
    TabCoul = Array(255, 12611584, 5287936, 65535, 10498160, -1, 49407, 12632256, 13209, 0, 16763904, 16711935, 13209, 65280)
     
    With Worksheets("Feuil1")
        For i = 1 To .UsedRange.Rows.Count
            For j = LBound(TabVal) To UBound(TabVal)
                If .Cells(i, 3) Like "*" & TabVal(j) & "*" Then
                    .Cells(i, 3).Interior.Color = TabCoul(j)
                    Exit For
                End If
            Next j
        Next i
    End With
     
    End Sub
    Bonjour super merci
    j'ai complété le code avec les autres couleurs
    ça fonctionne sur la colonne A.
    Comment on fait pour lui dire de le faire sur les colonne de A à K ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Par défaut
    Bonjour,

    Quelque chose comme ça (pas testé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Sub CouleurModuleC()
     
    Dim TabVal() As Variant
    Dim TabCoul() As Variant
    Dim Nb_Col As Integer
     
    TabVal = Array("1:ROU", "2:BLF", "3:VER", "4:JAU", "5:VIO", "6:BLA", "7:ORA", "08:GRI", "19:MAR", "10:NOI", "11:BLC", "12:ROS", "09:MAR", "10:VEC")
    TabCoul = Array(255, 12611584, 5287936, 65535, 10498160, -1, 49407, 12632256, 13209, 0, 16763904, 16711935, 13209, 65280)
     
    With Worksheets("Feuil1")
        For Nb_Col = 1 To 11
            For i = 1 To .UsedRange.Rows.Count
                For j = LBound(TabVal) To UBound(TabVal)
                    If .Cells(i, Nb_Col) Like "*" & TabVal(j) & "*" Then
                        .Cells(i, Nb_Col).Interior.Color = TabCoul(j)
                        Exit For
                    End If
                Next j
            Next i
        Next Nb_Col
    End With
     
    End Sub

  7. #7
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour commencer, tu dis que ça fonctionne bien sur la colonne A, mais tu as changé un peu le code, et c'est sur la colonne C que ça s'effectue.



    la proposition de OBO29 part du principe que tu veux rechercher ces valeurs dans les 11 colonnes

    quand j'ai lu ta demande, j'ai compris autre chose : chercher en colonne A et colorier les 11 colonnes de la ligne

    donc au cas où ce soit moi qui ai bien compris (ça arrive parfois ) voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub CouleurModuleC()
     
    Dim TabVal() As Variant
    Dim TabCoul() As Variant
    TabVal = Array("1:ROU", "2:BLF", "3:VER", "4:JAU", "5:VIO", "6:BLA", "7:ORA", "08:GRI", "19:MAR", "10:NOI", "11:BLC", "12:ROS", "09:MAR", "10:VEC")
    TabCoul = Array(255, 12611584, 5287936, 65535, 10498160, -1, 49407, 12632256, 13209, 0, 16763904, 16711935, 13209, 65280)
     
    With Worksheets("Feuil1")
        For i = 1 To .UsedRange.Rows.Count
            For j = LBound(TabVal) To UBound(TabVal)
                If .Cells(i, 1) Like "*" & TabVal(j) & "*" Then
                    .Cells(i, 1).Resize(0,10).Interior.Color = TabCoul(j)
                    Exit For
                End If
            Next j
        Next i
    End With
     
    End Sub

Discussions similaires

  1. Macro pour mettre à jour tous les TCD
    Par kimai81 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/03/2008, 21h55
  2. Réponses: 16
    Dernier message: 19/02/2008, 14h10
  3. Problème pour mettre de la couleur !
    Par Fredo123456 dans le forum C
    Réponses: 5
    Dernier message: 31/12/2007, 15h14
  4. Réponses: 4
    Dernier message: 13/09/2007, 09h30
  5. Bsetbg pour mettre un fond d'écran sous fluxbox
    Par Francois Trazzi dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 06/06/2004, 10h45

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