Macro mise en forme conditionnelle

LickZ

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin d'aide, je cherche une macro basique me permettant d'obtenir une MFC à plus de 3 conditions.

A savoir, j'ai dans mon tableau 6 valeurs alpha, et je voudrais que pour chacune d'elle il y ait une couleur différente dans la cellule lui correspondant.

Rien de confidentiel, c'est juste pour moi un moyen de gérer l'état de mon stock sous excel et d'avoir un visuel en couleur.

Ci-joint le fichier sur lequel j'ai absolument besoin de votre aide ! ;-)

Je voudrais pour chaque code les couleurs suivantes :

LCL =====> Rouge
LBP =====> Jaune
ICA =====> Or
CRF =====> Turquoise
MCD =====> Vert marin
x =====> Vert brillant

PS : Ce fichier doit être mis à jour tous les jours ouvrés, donc il faut qu'en fonction de l'extraction du jour (stk_aff), les couleurs se mettent automatiquement pour chaque valeur.

Merci à tous pour vos réponses et vos actions.

Cordialement
 

Pièces jointes

  • Stock Info III.xls
    713.5 KB · Affichages: 60
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Macro mise en forme conditionnelle

Bonjour et bienvenu sur le forum LickZ,



Concernant ton soucis de MFC de plus de 3 conditions, le sujet a été abordé des milliers de fois sur ce forum. Tu as regardé en utilisant le moteur de recherche?

Pour ton cas concret, voici un début de réponse pour te mettre le pied à l'étrier car tu semble déjà connaître le VBA :
Sub Macro1()
' Macro enregistrée le 27/02/2012 par Excel-lent

' Si la cellule A1 contient LCL, colorier la cellule en Rouge
If Range("A1") = "LCL" Then Range("A1").Interior.ColorIndex = 3
' Si la cellule A1 contient LBP, colorier la cellule en Jaune
If Range("A1") = "LBP" Then Range("A1").Interior.ColorIndex = 6
' Si la cellule A1 contient ICA, colorier la cellule en Or
If Range("A1") = "ICA" Then Range("A1").Interior.ColorIndex = 44
' Si la cellule A1 contient CRF, colorier la cellule en Turquoise
If Range("A1") = "CRF" Then Range("A1").Interior.ColorIndex = 8
' Si la cellule A1 contient MCD, colorier la cellule en Vert Marin
If Range("A1") = "MCD" Then Range("A1").Interior.ColorIndex = 50
' Si la cellule A1 contient x, colorier la cellule en Vert Brillant
If Range("A1") = "x" Then Range("A1").Interior.ColorIndex = 4

End Sub

Pour information il ne te reste plus qu'à :
-> rajouter une boucle : "For Each..."
-> remplacer Range("A1") par Cells(Numéro ligne, Numéro colonne) -> en utilisant des variables
-> créer un bouton
-> affecter la macro à ce bouton

Bonne après midi
 
Dernière édition:

LickZ

XLDnaute Nouveau
Re : Macro mise en forme conditionnelle

Bonjour Excel-Lent,

En effet j'ai trouvé plein de sujets à ce propos. Néanmoins, le bémol est que toutes les réponses apportées ne concernent que la validation d'une cellule après l'autre, dans mon cas, il me faut une nouvelle activation à chaque MAJ de l'onglet stk_aff.

Je vais essayer de bidouiller avec cela cet après-midi, et reviendrai avec une réponse ou non, afin que les personnes dans mon cas puissent avoir accès aux mêmes infos.

Un grand merci à toi pour ta réponse rapide ! ;-)

PS: Je suis assez novice en VBA, je pique des codes à droite, à gauche et je compose avec cela donc mes connaissances sont très limitées par rapport à bon nombre d'entre vous. ;-)
 

tototiti2008

XLDnaute Barbatruc
Re : Macro mise en forme conditionnelle

Bonjour LickZ, Bonjour Excel-lent :)

Comme proposé par Excel-lent, si tu applique son code "for each Cellule in sheets("feuil1").usedrange.cells", ça s'éxecutera pour chaque cellule
Et si tu appelles ta macro sur l'évènement Calculate, ça devrait le faire, même si ce ne sera pas forcément très rapide

à coller dans le code de la Feuil1

Code:
Private Sub Worksheet_Calculate()
Dim Cellule As Range
Application.ScreenUpdating = False
With Sheets("Feuil1")
    .UsedRange.Cells.Interior.ColorIndex = xlNone
    For Each Cellule In .UsedRange.Cells
        Select Case Cellule.Value
            Case "LCL"
                Cellule.Interior.ColorIndex = 3
            Case "LBP"
                Cellule.Interior.ColorIndex = 6
            Case "ICA"
                Cellule.Interior.ColorIndex = 44
            Case "CRF"
                Cellule.Interior.ColorIndex = 8
            Case "MCD"
                Cellule.Interior.ColorIndex = 50
            Case "x"
                Cellule.Interior.ColorIndex = 4
        End Select
    Next Cellule
End With
Application.ScreenUpdating = True
End Sub
 

LickZ

XLDnaute Nouveau
Re : Macro mise en forme conditionnelle

Bonjour Tototiti2008,

Et merci, il me manquait une boucle active et tu viens de me la procurer. Un grand merci à toi !

Excel-Lent,

Je crois que j'avais de nombreux bons codes, mais qu'il fallait certainement les affecter à un bouton, j'ai eu un bug en route, ça fait des heures que je me prends la tête avec tout ça..

Merci à vous les gars !! ;-))
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 910
Membres
104 303
dernier inscrit
Patdec