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 :

[VBA-Excel] modification automatique de la couleur des cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut [VBA-Excel] modification automatique de la couleur des cellules
    Bonjour à tous,

    Dans une de mes feuilles de calcul, je souhaiterais, suivant les valeurs que l'on met dans la première colonne, que la ligne change de couleur automatiquement.

    Par exemple, dans ma première colonne on peux mettre 3 valeurs : 0,1,2. Je souhaiterais que si la valeur est 1, la ligne deviennent de couleur jaune et si la valeur est 2, la ligne soit rouge.

    Est-ce possible? j'ai regardé dans la FAQ, mais je n'ai pas trouvé d'informations.

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonjour,

    Il est possible d'écrire cela en VBA.

    mais dans ton cas si tu nas que 3 couleurs tu peu utiliser la mise en forme conditionnelle.

    Voir menu Format / Mise En forme conditionelle



    Jacques.
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    Merci pour ta réponse!
    Mais je vais avoir beaucoup de conditions et de mises en forme différentes, et suivant la valeur dans la première colonne, je voudrais que toute la ligne ait la même couleur.

    comment faire avec VBA?

  4. #4
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    re,

    Alt F11 , pour passer dans l'éditeur VBE, puis CTRL+R explorateur de projet, double clic sur le nom de ta feuille et rajout de ce code :


    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     Dim c As Range
     Dim rIntersect As Range
     Set rIntersect = Intersect([A:A], Target)
     If Not rIntersect Is Nothing Then
        For Each c In rIntersect
          Select Case c.Value
            Case 1
              c.EntireRow.Interior.Color = vbRed
            Case 2
              c.EntireRow.Interior.Color = vbYellow
            Case 3
              c.EntireRow.Interior.Color = vbBlue
            Case 4
              c.EntireRow.Interior.Color = vbGreen
          End Select
        Next
     End If
     End Sub

    Jacques.
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Autre solution éventuelle, sans passer par une sélection de couleur pré-établie, en utilisant les index de couleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
        If Target.Value < 0 Or Target.Value > 56 Or Not IsNumeric(Target.Value) Then
            MsgBox "Veuillez saisir un chiffre entre 0 et 56"
            Target.Value = ""
            Exit Sub
        End If
        Target.EntireRow.Interior.ColorIndex = Target.Value
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    Ok parfait!

    merci pour vos réponses!!!

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Amélioration possible ?
    Pour ma part les cellules incriminées "à coloriser" sont des formules.
    Comment faire pour faire de la mise en forme conditionnelle VBA (comme la réponse n°4) sur les valeurs affichées des cellules ?

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Les objets Range ont (au moins) deux propriétés pour modifier ou consulter leur contenu. Value et Formula. Value retourne (ou modifie) la valeur brute (le résultat) et Formula retourne (ou modifie) la Formule.

    Exemple :
    A1 contient la date d'aujourd'hui
    B1 contient ma date de naissance
    C1 contient une formule pour calculer mon âge, soit :
    Le code suivant affiche la formule et la valeur de C1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub AfficherFormuleEtValeur()
    MsgBox "la formule """ & Feuil1.Range("C1").Formula & _
        """ contenue dans C1 retourne " & Feuil1.Range("C1").Value
    End Sub
    Autre astuce...
    En créant une fonction ayant pour paramètre un objet range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function FormuleEtValeur(cellule As Range) As String
        FormuleEtValeur = "la formule """ & cellule.Formula & _
        """ contenue dans C1 retourne " & cellule.Value
    End Function
    on peut utiliser cette fonction comme formule de cellule :
    avec ou sans égards pour les majuscules/minuscules...

Discussions similaires

  1. modification automatique de la couleur des cellules
    Par pvg70 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/07/2012, 08h50
  2. VBA Excel- Modification des datalabels d´un graphe
    Par doringen dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/12/2006, 10h02
  3. [Excel] modification automatique d'un mot
    Par tarmin dans le forum Excel
    Réponses: 2
    Dernier message: 11/09/2006, 13h25
  4. (vba excel) Copie automatique de charts
    Par moicwill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2006, 18h17
  5. [VBA Excel] Copie automatique d'une donnée
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2006, 13h21

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