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 cellule en VBA qui contient une mise en forme conditionnelle [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Par défaut Colorer cellule en VBA qui contient une mise en forme conditionnelle
    Bonjour tout le monde

    J'ai actuellement dans une feuille un ensemble de plages nommées, chacune contenant plusieurs colonnes (et lignes).

    Je souhaite faire une fonction vba qui permet de changer le fond de toute la ligne incluse dans la plage nommée dans laquelle j'ai cliqué.

    Exemple ma plage nommée recette qui contient en première colonne la liste des noms de recette, en seconde colonne une note pour cette recette. Je veux lorsque je clique sur n'importe quelle cellule de cette plage "recette" que la cellule du nom de la recette ET de la colonne note aient un fond jaune -> l'intersection de Target.EntireRow et de la plage Recette

    J'ai fait ma fonction justement et ça "marche" plus ou moins. ça ne marche simplement pas quand une mise en forme conditionnelle est présente et active ... Actuellement j'ai une mise en forme cond sur l'ensemble de ma plage nommée recette qui me permet de colorer une ligne sur deux. Donc ... ma fonction me permet de surligner au clique les lignes non colorées par la mise en forme conditionnelles

    Comment faire, pour que mon "Cell.Interior.ColorIndex =" soit effectif malgré la présence d'une mise en forme cond. sur cette cellule ?

    Par avance merci

    Free.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu peux tester si tu as la MFC qui s'applique sur la cellule sélectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Dim Plage As Range
     
        Set Plage = Range("Recettes")
     
        If Intersect(Target, Plage) Is Nothing Then Exit Sub
        If Target.Count > 1 Then Exit Sub
     
        If Target.Row Mod 2 Then MsgBox "MFC !"
     
    End Sub
    Mais comme la MFC prime sur la coloration par VBA tu n'as pas le choix que d'appliquer autre chose, bordures, etc...
    Un exemple, à adapter bien sûr :
    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
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Dim Plage As Range
        Dim I As Integer
     
        Set Plage = Range("Recettes")
     
        If Intersect(Target, Plage) Is Nothing Then Exit Sub
        If Target.Count > 1 Then Exit Sub
     
        Plage.Interior.ColorIndex = 0
     
        For I = 1 To Plage.Count
            Plage(I).Borders(xlEdgeLeft).LineStyle = xlNone
            Plage(I).Borders(xlEdgeRight).LineStyle = xlNone
            Plage(I).Borders(xlEdgeTop).LineStyle = xlNone
            Plage(I).Borders(xlEdgeBottom).LineStyle = xlNone
        Next I
     
        With Range(Target, Target.Offset(, 1))
            If Target.Row Mod 2 Then .BorderAround , xlMedium, 3 Else .Interior.ColorIndex = 3
        End With
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,
    Mais comme la MFC prime sur la coloration par VBA tu n'as pas le choix que d'appliquer autre chose, bordures, etc...
    Un exemple, à adapter bien sûr :
    OH noooooon

    L'idée des bordures est pas mal je pense que la mise en relief est suffisante en effet ...

    Je prends ! Merci beaucoup pour ton aide

    Free94.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le format MFC prime sur le format local.
    La seule solution serait donc de modifier la zone d'application de ta MFC mais ce serait sans doute assez compliqué.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/09/2015, 13h32
  2. [XL-2007] VBA-MFC Modifier la plage d'application d'une mise en forme conditionnelle
    Par sl.info dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2010, 23h51
  3. Cellules avec une mise en forme conditionnelle
    Par Peanut dans le forum Excel
    Réponses: 2
    Dernier message: 31/07/2008, 13h47
  4. [VBA-E]Archiver une mise en forme pour la reproduire plus tard
    Par tazamorte dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 31/01/2007, 11h12
  5. [VBA EXCEL]: Savoir si une mise en forme conditionnelle est active
    Par ADONET dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/01/2007, 14h59

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