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 :

Mise en forme conditinnelle avec VB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2015
    Messages : 20
    Par défaut Mise en forme conditinnelle avec VB
    Bonjour,
    J'ai un fichier excel et dans 5 colonnes j'ai une mise en forme conditionnelle selon la réponse à une autre colonne.

    J'ai une colonne A qui contient des no de contenu.
    Colonne B est une caractéristique de mon contenu
    Colonnes C à F, je veux mettre une couleur dans le fond de la cellule selon la caractéristique de la colonne B.

    Quand la valeur de la colonne B est
    I alors couleur de fond de cellule est rouge
    P alors couleur de fond de cellule est Bleu
    E alors couleur de fond de cellule est Vert
    F alors couleur de fond de cellule est Orange

    Exemple:

    Colonne A	Colonne B	Colonne C	Colonne D	Colonne E	Colonne F
    contenu1	I		Hier		Mois		A		JJ
    contenu2	P		Demain		Année		B		KK
    contenu3	I		Demain		Jour		A		VV
    contenu4	E		Hier		Jour		C		FF
    Contenu5	F		Demain		Mois		F		TT
    Contenu6	P		Demain		Mois		F		BB

    Il faut absoluement que ce soit fait en VB, je sais que je peux le faire via les mises en forme conditionnelle.
    Je veux que ce soit un bouton macro et en appuyant sur ce dernier la couleur va se mettre dans les cellules.

    Merci de votre aide!
    Flag

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, lire, assimiler puis appliquer cette partie de La mise en forme conditionnelle dans Excel

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Pour éviter l'emploi d'un bouton de commande, tu peux utiliser l'évènement Change de la feuille.
    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
    16
    17
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count > 1 Then Exit Sub
        If Target.Column = 2 Then
            Select Case Target.Value
                Case "I"
                    Target.Offset(0, 1).Resize(, 4).Interior.ColorIndex = 3 'Rouge
                Case "P"
                    Target.Offset(0, 1).Resize(, 4).Interior.ColorIndex = 33 'Bleu
                Case "E"
                    Target.Offset(0, 1).Resize(, 4).Interior.ColorIndex = 43 'Vert
                Case "F"
                    Target.Offset(0, 1).Resize(, 4).Interior.ColorIndex = 44 'Orange
                Case Else
                    Target.Offset(0, 1).Resize(, 4).Interior.ColorIndex = xlNone
            End Select
        End If
    End Sub
    Cordialement.

  4. #4
    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,

    Teste ce qui suit :
    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
     
    Sub Formater()
     
        Range("C1:F6").Select
     
        With Selection
     
            .FormatConditions.Delete
     
            .FormatConditions.Add 2, , "=$B1=""I"""
            .FormatConditions(1).Interior.ColorIndex = 3
     
            .FormatConditions.Add 2, , "=$B1=""P"""
            .FormatConditions(2).Interior.ColorIndex = 5
     
            .FormatConditions.Add 2, , "=$B1=""E"""
            .FormatConditions(3).Interior.ColorIndex = 4
     
            .FormatConditions.Add 2, , "=$B1=""F"""
            .FormatConditions(4).Interior.ColorIndex = 46
     
        End With
     
    End Sub
    Hervé.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2015
    Messages : 20
    Par défaut
    Bonjour,

    Wow, merci Hervé, j'y suis presque!

    J'ai réussi à appliquer le fond comme souhaité.

    J'aimerais ajouter une couleur uniquement si la cellule n'est pas vide.
    Par exemple si la cellule C4 ou E5 est vide alors je veux que le fond soit blanc.


    Aussi, j'adore l'idée de gFZT82 de ne pas avoir de bouton et que le changement s'appliquer automatiquement, est-ce que je peux appliquer le Private sub proposé?

    Finalement, mon nombre de ligne va augmenter avec le temps. Est-ce possible de faire en sorte que ça sélectionne automatiquement la plage?
    Il y aura toujours une valeur dans la colonne B. J'ai essayé d'appliquer un Xldown dans la sélection mais sans succès..... je ne suis pas un pro du VB! :-(

    Merci grandement de votre aide!

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    pour la selection dynamique de la plage
    ca n'est pas (xldown) que tu dois utiliser c'est plutot (xlup)
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set maplage =range("A1:f"& cells(rows.count,1).end(xlup).row)
    il est preferable de partir de tout en bas et remonter a la premiere cellules non vide ,au cas ou tu aurais des cellules vides

    si tu par d'en haut avec xldown des la premiere cellules vide ca s'arrete

    apres il y a bien d'autre methodes avec usedrange voir aussi specialcells(xltypelastcell) etc.....
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [E-03] : Mise en forme conditionnelle avec 5 choix
    Par basto dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2008, 13h40
  2. mise en forme conditionnelle avec date
    Par jeff192 dans le forum Excel
    Réponses: 1
    Dernier message: 20/03/2008, 17h08
  3. Mise en forme conditionnelle avec Access 97
    Par soso78 dans le forum IHM
    Réponses: 4
    Dernier message: 22/11/2007, 21h25
  4. Réponses: 4
    Dernier message: 29/03/2007, 10h10
  5. [Report 6i] Mise en forme champs avec du texte
    Par Invité dans le forum Reports
    Réponses: 5
    Dernier message: 13/10/2005, 16h00

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