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 :

Faire varier la couleur d'une feuille en fonction d'un critère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut Faire varier la couleur d'une feuille en fonction d'un critère
    Bonjour

    Je voulais savoir s'il était possible de donner une couleur à une feuille en fonction d'un critère se trouvant sur celle-ci ?

    Par exemple, j'ai le nom du commercial en E3, et si c'est Jacques, alors la couleur de la feuille se met en bleu, si c'est Paul en vert, si c'est Martin en jaune ...

    D'avance Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par aweb Voir le message
    Bonjour,

    J'imagine qu'il faut comprendre : colorer le nom de l'onglet.

    Dans un module standard :
    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
     
    Sub MettreEnCouleur(ByVal OngletEnCours As Worksheet, ByVal Prenom As String)
     
        With OngletEnCours
             Select Case Prenom
                    Case "Jacques"
                         .Tab.Color = RGB(68, 114, 196)
                    Case "Paul"
                         .Tab.Color = RGB(0, 255, 0)
                    Case "Martin"
                         .Tab.Color = RGB(255, 255, 0)
                    Case Else
                         .Tab.Color = RGB(255, 255, 255)
             End Select
       End With
     
    End Sub
    Dans le module de l'onglet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
       If Target.Count > 1 Then Exit Sub
     
       If Not Intersect(Target, Range("E3")) Is Nothing Then
          MettreEnCouleur ActiveSheet, Target
       End If
     
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut
    Bonjour

    Merci Eric pour votre réponse

    Je n'ai pas réussi à adapter votre code.
    Sur les dernières lignes, pour le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case Else
     .Tab.Color = RGB(255, 255, 255)
    il indique
    Erreur d'exécution 424" Objet requis.
    Désolé, je suis vraiment débutant en VBA.

    D'avance Merci

    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
    Sub Mettreencouleurfeuille()
    '
    ' Mettreencouleurfeuille Macro
    '
     
    '
       ' ByVal OngletEnCours As Worksheet
       ' ByVal Prenom As String)
     
        With OngletEnCours
             Select Case Prenom
                    Case "Jacques"
                         .Tab.Color = RGB(68, 114, 196)
                    Case "Paul"
                         .Tab.Color = RGB(0, 255, 0)
                    Case "Martin"
                         .Tab.Color = RGB(255, 255, 0)
                    Case Else
                         .Tab.Color = RGB(255, 255, 255)
             End Select
       End With
     
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par aweb Voir le message
    Bonjour,

    Vu ce que je vois, pas sûr qu'on parle de la même chose...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut
    J'ai certainement mal posé mon besoin.

    J'ai un classeur excel avec plus de 400 feuilles, toutes identiques dans la construction.

    J'aimerais une macro qui me mettent la feuille (ou l'onglet) d'une couleur en fonction du nom qui est écrit en E3.

    L'idée étant que je passe pas manuellement sur toutes le feuilles pour lancer la macro, mais qu'elle passe automatiquement sur toutes les feuilles du classeur pour lire la cellule E3 et appliquer la bonne couleur à l'onglet.

    Merci encore

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par aweb Voir le message
    Quand tu parles d'onglet, c'est ça que tu essaies d'obtenir ?
    Pièce jointe 551576

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 22/08/2013, 17h56
  2. [Toutes versions] Faire apparaître un message dans une cellule en fonction de différents critères
    Par niiiiiiiiiico dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 26/04/2013, 14h43
  3. [plot] Faire varier la couleur d'une courbe
    Par christophe_halgand dans le forum MATLAB
    Réponses: 4
    Dernier message: 25/01/2008, 18h11
  4. Réponses: 4
    Dernier message: 07/02/2007, 23h33
  5. [VBA-E]Faire varier la couleur d'une cellule
    Par benoue dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 24/03/2006, 16h38

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