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 :

Ajouter des MFC via vba [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut Ajouter des MFC via vba
    Bonjour,

    je suis confrontée un probleme quand j'essaye d'automatiser des mises en formes conditionnelle.
    J'utilise le meme modele de code plusieurs fois, ca marche comme attendu les 3 premieres fois alors que les mises en formes suivantes s'ajoute dans la liste, mais sans la condition de couleur



    Au niveau code, ca ressemble à ca

    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
    30
    31
    32
    33
    34
    35
    36
    'série de mise en forme conditionnel pour mettre en valeur le probleme
        'colorier les doublons
        Range("E1:E" & l).FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(SUBSTITUTE($C1;""doublon"";""""))<>LEN($C1)"
        With Range("E1:E" & l).FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13421823
            .TintAndShade = 0
        End With
        'colorier les problemes achats
        Range("h1:h" & l).FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(SUBSTITUTE($C1;""achat"";""""))<>LEN($C1)"
        With Range("h1:h" & l).FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13421823
            .TintAndShade = 0
        End With
        'colorier les problemes ventes
        Range("i1:i" & l).FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(SUBSTITUTE($C1;""vente"";""""))<>LEN($C1)"
        With Range("i1:i" & l).FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13421823
            .TintAndShade = 0
        End With
        'colorier les problemes de famille
        Range("j1:j" & l).FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(SUBSTITUTE($C1;"" famille"";""""))<>LEN($C1)"
        With Range("i1:i" & l).FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13421823
            .TintAndShade = 0
        End With
        'colorier les problemes de sous-famille
        Range("k1:k" & l).FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(SUBSTITUTE($C1;""sous-famille"";""""))<>LEN($C1)"
        With Range("i1:i" & l).FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13421823
            .TintAndShade = 0
        End With
    l correspond aux nombre de ligne de la plage et est alimenté précédent

    L'idée général est que j'ai dans ma colonne C l'explication du probleme et que pour simplifier la vie a l'utilisateur humain, je met en couleur la colonne correspondante pour cette ligne la (cette page est générée par macro, donc je suis sure que les formulations pour le probleme ne vont pas changer)

    Le code est copié collé d'une condition a l'autre, je change juste la chaine de caratere qui sert de test et la plage
    Et la, a ma grande surprise, ca définit bien 5 plages, mais ne met une couleur de fond que pour les 3 premieres

    Où est l'astuce?

    Si on en veut plus de 3 il faut écrire un autre code?

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Bonjour,
    je ne sais pas trop, mais je note que pour J et K (les 2 dernières conditions) ton code reprend la colonne I à cet endroit en rouge, ce qui n'est pas le cas pour les 2 premières conditions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("k1:k" & l).FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(SUBSTITUTE($C1;""sous-famille"";""""))<>LEN($C1)"
        With Range("i1:i" & l).

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    aaarg, super, c'était ca le probleme

    en copiant collant les condition précédente j'ai oublié de changer cette plage la aussi

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

Discussions similaires

  1. Ajouter une bibliothèque via vba
    Par vavou dans le forum VBA Access
    Réponses: 9
    Dernier message: 16/07/2014, 14h35
  2. Impossible d'ajouter des enregistrements via une requête
    Par roman33 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/06/2009, 21h20
  3. Ajouter des view via code behind
    Par Fleur-Anne.Blain dans le forum C#
    Réponses: 5
    Dernier message: 21/07/2008, 11h17
  4. Comment ajouter des décimales via Delphi ?
    Par savoir dans le forum Débuter
    Réponses: 5
    Dernier message: 21/04/2008, 13h18
  5. Taille des colonnes via VBA
    Par mooh91 dans le forum Access
    Réponses: 7
    Dernier message: 15/02/2007, 19h30

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