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 :

Colorer une plage de cellule en fonction de la couleur d'une autre plage de cellules sur la même ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut Colorer une plage de cellule en fonction de la couleur d'une autre plage de cellules sur la même ligne
    Bonjour,

    Débutante sur vba et non habituée aux forums j'ai essayé de trouver parmi les sujets la solution à mon probleme mais n'y arrive pas. J'espère que je serai claire et compréhensible.

    Si je prends l'exemple de ma ligne 6:

    POur mon tableau qui va de B6 à X200
    Si les cellules de L6 à W6 sont TOUTES grisées (attention, elles le sont par le biais de mises en forme conditionnelles et non pas manuellement)
    Alors les cellules de B6 à K6 doivent être grisées également
    Sinon, on ne touche pas à la couleur des cellules B6 à K6

    Merci par avance pour le temps que vous pourrez accorder à mon problème.

    Anne

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    (attention, elles le sont par le biais de mises en forme conditionnelles et non pas manuellement)
    alors pourquoi ne pas changer la destination de ta formule conditionnelle ?

    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    De L6 à W6, il y a à peu près une condition par colonne donc trop compliqué de faire une formule conditionnelle pour griser les cellules de B à K. C'est pour ça que je recherche à griser les cellules B à K grâce au format des cellules L à W.
    Ai-je répondu à ta question? ou suis-je tombée à coté?

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    oui, je crois comprendre, encore faut'il savoir sur quelle version tu travailles pour connaitre le numéro de ta couleur des cellules déjà grisées, fais un test avec l'enregistrement automatique et je te donnerais probablement la solution

    as-tu compris ? sinon je détaille la manip pour que tu me donnes le résultat

    passes-tu, dans ta version par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .ThemeColor = xlThemeColorDark1
            .TintAndShade = -0.14996795556505'exemple
    ou par
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    Encore une fois j'espère avoir compris. Je travaille sur Excel 2007
    Avec l'enregistrement automatique de macro ça donne ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = -0.349986266670736
            .PatternTintAndShade = 0
        End With

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    La dernière formule marche mais uniquement quand je mets ma couleur manuellement. Sur les lignes où je laisse la mise en forme conditionnelle mettre le gris, cela ne fonctionne pas. Mais déjà c'est un grand pas!!!
    Il me semble avoir lu sur un site qu'il était difficile de récupérer le fonds de couleur quand c'était une mise en forme conditionnelle... peut être que ce n'est pas compatible avec vba?!
    En tout cas déjà merci pour cette 1ere solution

    peut être faut-il que je mette toutes mes conditions de mise en forme sous vba? Mais il me semble que vba n'aime pas trop les dates non?
    Est-ce une solution envisageable?

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    A ma connaissance, il n'est pas possible de détecter le format d'un Range qui a été attribué par la Mise en forme conditionnelle.
    Pour cela il faut faire une procédure qui parcourt les cellules concernées et là faire une boucle sur le nombre de conditions et tester ensuite si la condition en question est remplie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("xnn").FormatConditions.count
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    Malheureusement ça devient compliqué à comprendre pour mon niveau...

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re bonsoir,
    en suivant les conseils de corona,
    fais une macro temporaire pour savoir combien de conditions existent dans les cellules grisées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub essai()
    Dim x
    For x = 4 To 6
    MsgBox Range("l" & x, "w" & x).FormatConditions.Count
    Next x
    End Sub
    si le nombre reste identique, on a une chance que les conditions soient les memes, dans ce cas tu peux l'utiliser pour transformer la macro initiale, moi j'ai mis 4 au hasard ci-dessous pour exemple
    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
    Sub essai()
    Dim x As Long
    For x = 6 To 200
       If Range("L" & x, "W" & x).FormatConditions.Count= 4 Then 'changer le 4 pour le vrai nombre de conditions
                With Range("b" & x, "k" & x).Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = -0.349986266670736
                    .PatternTintAndShade = 0
                End With
            End If
        End With
    Next x
    End Sub
    dis-moi si ça peut coller, attention changes le "4" pour ton nombre exact
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    Alors je trouve 15 conditions.
    La dernière formule proposée me colore bien les cellules en gris, mais parcontre ca me les colore toutes sans distinguer uniquement les lignes sur lesquelles les cellules des colonnes L à W sont toutes grisées.
    Peut être un mix à faire entre les deux formules suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub essaideux()
    Dim x As Long
    For x = 6 To 200
       If Range("L" & x, "W" & x).FormatConditions.Count = 15 Then 
                With Range("b" & x, "k" & x).Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = -0.349986266670736
                    .PatternTintAndShade = 0
                End With
            End If
      Next x
    End Sub
    Et

    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
    Sub essai()
    Dim x As Long
    For x = 6 To 200
        With Range("L" & x, "W" & x).Interior
            If .ColorIndex = 48 Then
                With Range("b" & x, "k" & x).Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = -0.349986266670736
                    .PatternTintAndShade = 0
                End With
            End If
        End With
    Next x
    End Sub

Discussions similaires

  1. [XL-2003] impression couleur d'une cellule en fonction de la couleur d'une autre cellule
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 47
    Dernier message: 21/09/2012, 17h18
  2. Réponses: 5
    Dernier message: 07/12/2010, 08h58
  3. [XL-2000] Coloration d'une cellule en fonction du numéro saisi dans une autre
    Par Nerva dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/11/2010, 14h07
  4. Réponses: 5
    Dernier message: 03/02/2009, 13h43
  5. Réponses: 7
    Dernier message: 13/10/2007, 23h31

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