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 :

Colorier mes onglets a travers une macros en utilisant un critère texte [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Points : 76
    Points
    76
    Par défaut Colorier mes onglets a travers une macros en utilisant un critère texte
    Bonjour tout le monde .

    Je voudrais colorier mes onglets automatiquement en intégrant le code dans un bouton qui me permet de créer de nouveaux onglets a partir d'une feuil Modèle(tableau).

    Le but est simple : si Le nom de l'onglet "contient" le texte suivant le colorier avec la couleur précisé .

    (EHS=> rouge) ; (5S=>Bleu ciel) ; (PI=>Bleu foncé) ; (MA=>Jaune) ; (Q=>Vert) .



    Merci bcp .

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Tu peux essayer ceci
    Note que tu peux modifier la manière de colorer en utilisant l'enregistreur de macro pour retrouver les couleurs que tu préfères

    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
    25
    26
    27
    28
    29
    30
    Dim Sh As Worksheet
     
    For Each Sh In ThisWorkbook.Worksheets
        If Left(Sh.Name, 3) = "EHS" Then
            With Sh.Tab
                .Color = vbRed
                .TintAndShade = 0
            End With
        ElseIf Left(Sh.Name, 2) = "5S" Then
            With Sh.Tab
                .Color = vbCyan
                .TintAndShade = 0
            End With
        ElseIf Left(Sh.Name, 2) = "PI" Then
            With Sh.Tab
                .Color = vbBlue
                .TintAndShade = 0
            End With
        ElseIf Left(Sh.Name, 2) = "MA" Then
            With Sh.Tab
                .Color = vbYellow
                .TintAndShade = 0
            End With
        ElseIf Left(Sh.Name, 1) = "Q" Then
            With Sh.Tab
                .Color = vbGreen
                .TintAndShade = 0
            End With
        End If
    Next
    MPi²

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    On pourrait écrire différemment
    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
    Dim Sh As Worksheet
     
    For Each Sh In ThisWorkbook.Worksheets
        With Sh.Tab
            If Left(Sh.Name, 3) = "EHS" Then
                    .Color = vbRed
                    .TintAndShade = 0
            ElseIf Left(Sh.Name, 2) = "5S" Then
                    .Color = vbCyan
                    .TintAndShade = 0
            ElseIf Left(Sh.Name, 2) = "PI" Then
                    .Color = vbBlue
                    .TintAndShade = 0
            ElseIf Left(Sh.Name, 2) = "MA" Then
                    .Color = vbYellow
                    .TintAndShade = 0
            ElseIf Left(Sh.Name, 1) = "Q" Then
                    .Color = vbGreen
                    .TintAndShade = 0
            End If
        End With
    Next
    MPi²

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Points : 76
    Points
    76
    Par défaut
    Merciii

    Comment je pourrais utiliser l'enregistreur de macro ?

    Est ce que j'enregistre un macro et j vais selectionner la couleur qui m'interesse dans la palette puis je met stop , et ensuite je copie le code enregistré pour le coller dans le code que vous m'avez transmis ?

    MERCI POUR L'AIDE PRÉCIEUSE

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    J'ai laissé la partie TintAndShade qui n'est pas vraiment nécessaire, en fait.
    Les constantes vbCouleur devraient suffire.
    Mais ces constantes donnent des couleurs plus franches, pas nécessairement au goût du jour (de MicroSoft)...

    Depuis les nouvelles versions d'Excel, les couleurs (ou palettes de couleurs) ont bien changé.

    Quand tu utilises l'enregistreur et que tu choisis les couleurs de base offertes, tu te retrouves avec des termes qui n'existaient pas auparavant (il me semble...)

    Par exemple: ThemeColor et TintAndShade qui changent selon la ligne de la palette, plus ou moins foncée, et la colonne des couleurs de base.

    Sélection du plus pâle au plus foncé en changeant de colonne de couleur:
    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
        With ActiveWorkbook.Sheets("Feuil1").Tab
            .ThemeColor = xlThemeColorAccent1   'ligne 1
            .TintAndShade = 0.799981688894314
        End With
        With ActiveWorkbook.Sheets("Feuil1").Tab
            .ThemeColor = xlThemeColorAccent2   'ligne 2
            .TintAndShade = 0.599993896298105
        End With
        With ActiveWorkbook.Sheets("Feuil1").Tab
            .ThemeColor = xlThemeColorAccent3
            .TintAndShade = 0.399975585192419
        End With
        With ActiveWorkbook.Sheets("Feuil1").Tab
            .ThemeColor = xlThemeColorAccent4
            .TintAndShade = -0.249977111117893
        End With
        With ActiveWorkbook.Sheets("Feuil1").Tab
            .ThemeColor = xlThemeColorAccent5
            .TintAndShade = -0.499984740745262
        End With
    MPi²

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/12/2009, 12h50
  2. choisir l'onglet sur lequelle une macro se déroule
    Par chloe2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/11/2009, 16h50
  3. [XL-2003] Creation d'une macro d'importation de fichier texte
    Par kev159 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/08/2009, 15h14
  4. lancer une macro en cliquant sur un texte
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/05/2008, 14h18
  5. Réponses: 9
    Dernier message: 14/04/2008, 12h58

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