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 :

macro pour appliquer mise en forme conditionnelle en fonction de mots trouvés [XL-2010]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut macro pour appliquer mise en forme conditionnelle en fonction de mots trouvés
    Bonjour

    Je cherche à créer une macro servant à colorer les lignes si certains mots se situent dans une colonne précise.
    La recherche se fait dans la colonne "W" .
    Chaque cellule peut contenir un ou plusieurs mots, séparés par une virgule.

    j'ai généré une macro qui ne me satisfait pas car elle ne prend pas en compte toutes les solutions, du fait qu'il y ait plusieurs mots dans les cellules.
    La voici :
    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
    Sub ESPACES_PALAIS_ROUGES()
    '
    ' ESPACES_PALAIS_ROUGES Macro
    '
     
    '
        Cells.Select
        Cells.FormatConditions.Delete
        Cells.Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=OU($W1=""ROTONDE"";$W1=""POURTOUR,ROTONDE"";$W1=""CONF"";$W1=""ROTONDE,POURTOUR"";$W1=""CONF,POURTOUR"";$W1=""ONF,SALLE13"";$W1=""ELECTRO,PLANE,ROTONDE"")"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Font
            .Color = -16777024
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = False
        Range("H6").Select
    End Sub
    Il me faudrait une macro où quand on trouve les mots ELECTRO, CONF, PLANETES, POURTOUR, ROTONDE, SALLE13 dans les cellules de la colonne W, alors la ligne se colore. J'ai essayé avec la fonction cherche et ou mais cela ne fonctionne pas.

    Merci de votre aide, j'avoue que je suis un peu perdue !!!!!
    A très vite

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    pas besoin de macro pour créer une mise en forme conditionnelle ....

    Pour ta recherche tu peu utiliser la fonction EQUIV qui renvoi d'élément lors d'une recherche dans une plage ou N/A si pas trouvé ...

    Par exemple tu met en N1..N4 la liste de tes mots à chercher ...

    et pour la colonne W tu utilise la formule suivante dans ta mise en forme conditionnelle :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NON(ESTNA(EQUIV(W1;$N$1:$N$4;0)))

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour

    Merci pour cette réponse rapide mais cela ne sélectionne pas lorsqu'il y a plusieurs mots dans la même cellule.

    Cf la pièce jointe.
    Ce qui est entouré aurait dû être mis en rouge.

    La mise en forme conditionnelle a été appliquée aux cellule ne contenant qu'un seul mot
    Images attachées Images attachées  

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour versnath,

    si vraiment besoin d'une macro (facile pourtant avec la méthode Range.Find), joindre un classeur
    en précisant si c'est toute la ligne qui doit être coloriée et quelle couleur utiliser …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par versnath Voir le message
    ... cela ne sélectionne pas lorsqu'il y a plusieurs mots dans la même cellule....
    cela ce n'était pas dans énoncé du départ (ni dans le code ...) on peu passer par la fonction CHERCHE et la fonction OU où bien une simple addition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NON(ESTERR(CHERCHE($N$1;W1)))+NON(ESTERR(CHERCHE($N$2;W1)))+NON(ESTERR(CHERCHE($N$3;W1)))+NON(ESTERR(CHERCHE($N$4;W1)))+NON(ESTERR(CHERCHE($N$5;W1)))+NON(ESTERR(CHERCHE($N$6;W1)))

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Autre formule un soupçon plus courte avec la liste des mots à chercher en colonne AB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI($W1;"*"&$AB$1&"*")+NB.SI($W1;"*"&$AB$2&"*")+NB.SI($W1;"*"&$AB$3&"*")+NB.SI($W1;"*"&$AB$4&"*")+NB.SI($W1;"*"&$AB$5&"*")+NB.SI($W1;"*"&$AB$6&"*")
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses, cela fonctionne parfaitement
    Encore merci de votre aide

    Cordialement

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/05/2014, 11h12
  2. [XL-2007] code pour remplacer mise en forme conditionnelle
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/04/2012, 11h15
  3. [XL-2007] Formule pour une mise en forme conditionnelle
    Par Pierrot78360 dans le forum Conception
    Réponses: 5
    Dernier message: 05/10/2011, 17h52
  4. mise en forme conditionnelle en fonction d'un champs
    Par perefourras dans le forum Word
    Réponses: 4
    Dernier message: 02/12/2007, 13h56
  5. Mise en forme conditionnelle ou fonction si?
    Par emilie31 dans le forum Excel
    Réponses: 4
    Dernier message: 24/10/2007, 11h03

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