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

Excel Discussion :

Mise en forme conditionnelle [XL-2016]


Sujet :

Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut Mise en forme conditionnelle
    Bonjour,

    J'utilise assez bien la forme conditionnelle simple, mais je suis confronté à un exercice qui me résiste :

    Enoncé :

    Je veux mettre une couleur de fond dans les lignes de mon classeur de la colonne B à la colonne P (de la ligne 5 à la ligne 1000) lorsque le contenu de la colonne D=1

    Tests :
    J'ai créé une règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="SI($D$5:$D$1000)=""1"""
    qui s'applique à
    Toutes mes variantes échouent…

    Problème résolu avec une petite macro, je ne sais pas ce qui est le plus rapide ? une macro ? une mise en forme conditionnelle
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut MFC
    Vous pouvez vous inspirer de ceci :

    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
    Sub MFC_test()
     
        Range("M12:P19").Select
        Selection.FormatConditions.Delete
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$N12=1"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Font
            .Bold = True
            .Italic = False
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
        End With
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent4
            .TintAndShade = -0.499984740745262
        End With
        Selection.FormatConditions(1).StopIfTrue = False
        Range("M12").Select
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 764
    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 : 12 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Alors avant tout, il est parfaitement inutile d'utiliser la fonction SI dans les règles de la mise en forme conditionnelle

    La seule chose à faire c'est un test logique soit Etapes
    1. Sélectionner la plage $B$5:$P$1000
    2. Dans la Mise en forme conditionnelle, sélectionner la règle Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué
    3. Ensuite entrer la formule dans la zone de texte prévue à cet effet
    4. Sélectionner le format souhaité


    Je voudrais ajouter qu'il n'y aucune raison de placer du code VBA alors qu'il esiste une fonction native dans Excel.
    Sinon, pourquoi ne pas créer un code VBA pour faire la somme d'une colonne ?
    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

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Merci, je suis arrivé à la solution avec une mise en forme conditionnelle (sans SI...)

    En comparant avec la solution VBA (dans Thisworkbook open), l'exécution avec la mise en forme conditionnelle est beaucoup plus rapide à l'ouverture du classeur

    Cela me semble logique en effet d'utiliser Excel natif

    Seule différence en faveur de VBA, le fichier avec mise en forme conditionnelle est devenu beaucoup plus gros (700 Ko contre 350 Ko pour 3000 lignes) Why ???

    je garde bien sur la solution mise en forme conditionnelle
    Il ne savait pas que c'était impossible, donc il l' a fait...

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

Discussions similaires

  1. mise en forme conditionnelle et vba
    Par malabar92 dans le forum Access
    Réponses: 4
    Dernier message: 26/04/2006, 14h18
  2. Mise en forme conditionnelle
    Par the big ben 5 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 23/12/2005, 15h20
  3. [VBA][Excel] mise en forme conditionnelle
    Par titflocon dans le forum Access
    Réponses: 9
    Dernier message: 19/12/2005, 10h13
  4. Réponses: 4
    Dernier message: 15/11/2005, 18h53
  5. Mise en forme conditionnelle en VBA / Cut-Paste
    Par priest69 dans le forum IHM
    Réponses: 4
    Dernier message: 03/09/2005, 13h54

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