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 :

Mise en couleur d'une cellule selon la valeur d'une autre cellule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    manager
    Inscrit en
    Février 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : manager
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2010
    Messages : 56
    Points : 56
    Points
    56
    Par défaut Mise en couleur d'une cellule selon la valeur d'une autre cellule
    Bonjour à tous et à toutes

    Je souhaite mettre en couleur une cellule( colonne B) par rapport à la valeur d'une autre cellule ( colonne A)avec une macro.
    J'ai fait une macro qui met en couleur la colonne A mais je ne trouve pas comment faire pour la colonne B.

    Je vous joins le fichier

    Merci d'avance
    A+
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    il est rare q'un forumeur ouvre un fichier déposer en 1er message du post
    depose plutot le code que tu a plus ou moins élaboré

    il faudrais que l'on ai plus de renseignements sur la condition entre la colonne "a" et "b"
    exemple;
    si on doit comparer les cellules meme ligne en colonne "a" et "b"

    ou si les lignes sont différentes

    mais dans tout les cas tu a tout ca avec

    fait une recherche sur :

    1° sheet_selection_change 'agit apres avoir modifié une cellule


    2° range intersect ' renseigne si une cellule dans une plage précisée a été modifié
    normalement avec ca tu devrais facilement comprendre

    reviens au cas ou

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    En complément, une autre piste en partant du code du fichier.

    S'il s'agit simplement de mettre à couleur dans la colonne B au lieu de la A,
    la fonction Offset(0, 1) permet de travailler sur la colonne suivante.

    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
     
    Sub Rectangle1_Clic()
     
        Dim ZoneModifier As Range
        Dim cellule As Range
        'Affecte une couleur en fonction de la valeur de la cellule
        Set ZoneModifier = Range("A4:A385")
        Dim c As Integer
     
        For Each cellule In ZoneàModifier
            Select Case cellule
                Case Is = ""
                    c = 2
                Case Is = "Bleu"
                    c = 5
                Case Is = "Verte"
                    c = 4
                Case Is = "Orange"
                    c = 46
                Case Is = "Rose"
                    c = 7
                Case Is = "Jaune"
                    c = 6
            End Select
     
            cellule.Offset(0, 1).Interior.ColorIndex = c
        Next
     
    End Sub

  4. #4
    Membre du Club
    Homme Profil pro
    manager
    Inscrit en
    Février 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : manager
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2010
    Messages : 56
    Points : 56
    Points
    56
    Par défaut
    Bonjour à tous et à toutes,
    Merci à vous BlueMonkey et patricktoulon.
    Cela fonctionne bien, je suis novice en macro et votre aide a été précieuse sur ce coup.
    Si j'ai bien compris la fonction offset permet de se décaler offset(0,1)

    Si j'ai un offset (1 , 1) je me décale d'une case à droite et une en bas.

    Si j'ai saisi le truc cela doit être cela.

    Merci encore et trés bon week-end
    A+

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    Si j'ai bien compris la fonction offset permet de se décaler offset(0,1)
    Si j'ai un offset (1 , 1) je me décale d'une case à droite et une en bas.
    Effectivement Offset(<nb ligne>,<nb colonne>) permet de décaler un objet du type Range (voir FAQ).

    Je suis novice en macro[...]
    Dans ce cas je conseil d'étudier la solution de Patricktoulon qui est basée sur les évènements reçu par une plage (= un objet du type Range)
    depuis la feuille d'un classeur. (voir FAQ)

    Et si la solution est suffisante, ne pas oublier de noter le sujet comme
    Bon week-end.

  6. #6
    Membre du Club
    Homme Profil pro
    manager
    Inscrit en
    Février 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : manager
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2010
    Messages : 56
    Points : 56
    Points
    56
    Par défaut
    Merci pour ce retour et j'ai pris la solution proposée par Patricktoulon et cela fonctionne.

    Bon dimanche

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

Discussions similaires

  1. Changer la couleur d une ligne selon la valeur d une cellule
    Par TGO2009 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/03/2014, 01h06
  2. [XL-2010] Copier une cellule selon la valeur d'une autre cellule
    Par jérémyp8 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/08/2013, 10h27
  3. Réponses: 4
    Dernier message: 23/05/2013, 00h07
  4. [XL-2003] selectionner une ligne selon la valeur d'une cellule
    Par gcgp_67 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/05/2011, 13h41
  5. Afficher Une Liste Selon La Valeur D'une Cellule
    Par Kevin_18 dans le forum Excel
    Réponses: 10
    Dernier message: 02/07/2007, 19h22

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