macro pour MFC sur colonnes

  • Initiateur de la discussion Initiateur de la discussion EloRocq
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

EloRocq

XLDnaute Nouveau
Bonjour,
Désolée si le sujet a déjà été abordé mais je ne trouve pas de réponse exacte et adaptable à mon problème et suivant mon niveau de maitrise du language VBA (je ne m'en suis pas servie depuis longtemps...).

J'ai un fichier Excel (v.2013) imposé par mon groupe pour mon travail. Ce fichier était très lourd et très lent (il faisait buger Excel à chaque fois) à cause de multiples mises en forme conditionnelles. J'ai réussi à tout supprimer (ce qui l'a rendu plus rapide mais toujours aussi lourd <4Mo) mais j'aimerais remplacer ces dernières par une macro.
le code couleur est simple :
- valeurs comprises entre 1 et 2 : vert
- valeurs comprises entre 3 et 4 : jaune
- valeurs comprises entre 8 et 9 : orange
- valeurs comprises entre 12 et 16 : rouge
la MFC doit concerner les colonnes Risque ("R") soit à partir de la colonne J, M, P, ...jusqu'à la colonne HF. Puis la colonne HG pour le résultat.

Pouvez vous m'aider ? pour l'instant je ne sais pas travailler dessus et cela me bloque dans mes taches.
Je vous joint le document pour visualisation.
Merci beaucoup !
Eloïse
 

Pièces jointes

Bonjour à tous,

Bienvenue sur XLD,

Peux-tu essayer avec :

VB:
Option Explicit

Sub Coloriage()
    Dim Cel As Range
    For Each Cel In Range("H7:HH600")
        If Cel = 1 Or Cel = 2 Then Cel.Interior.Color = 5296274
        If Cel = 3 Or Cel = 4 Then Cel.Interior.Color = 65535
        If Cel = 6 Or Cel = 8 Or Cel = 9 Then Cel.Interior.Color = 49407
        If Cel = 12 Or Cel = 16 Then Cel.Interior.Color = 192
        Next Cel
    End Sub

A+ à tous
 
Dernière édition:
Bonjour,
Merci beaucoup pour l'accueil et la réponse.

La macro fonctionne. En revanche elle colorie toutes les colonnes, or je voudrais que seules les colonnes Risques (résultat PxG) se colorent. Soit les colonnes J, M, P...jusque HF puis la colonne HG.
Donc la plage est la bonne mais en excluant les colonnes "P" et "G". Je ne sais pas si je suis claire, désolée si ce n'est pas le cas.

Merci,
Eloïse
 
Bonjour à tous,

Essaye avec :
VB:
Option Explicit

Sub Coloriage()
    Dim Cel As Range
    For Each Cel In Range("H7:HH600")
        If Cel = 1 Or Cel = 2 Then Cel.Interior.Color = 5296274
        If Cel = 3 Or Cel = 4 Then Cel.Interior.Color = 65535
        If Cel = 6 Or Cel = 8 Or Cel = 9 Then Cel.Interior.Color = 49407
        If Cel = 12 Or Cel = 16 Then Cel.Interior.Color = 192
        Next Cel
        Range("P7:P600").Interior.Color = -4142
    End Sub

Efface les données et relance la macro pour effacer les couleurs...

A+ à tous
 
Ca ne fonctionne pas, la couleur reste meme après avoir effacé la cellule et relancé la macro.
De plus, comment puis-je faire pour que la coloration ne concerne qu'une colonne sur 3 (les colonnes risques dans lesquelles sont les formules) ?
 
Bonjour à tous,

Peux-tu essayer :

VB:
Sub Coloriage()
    Dim Cel As Range
    For Each Cel In Range("H7:HH600")
        If Cel = "" Then Cel.Interior.Color = -4142
        If Cel = 1 Or Cel = 2 Then Cel.Interior.Color = 5296274
        If Cel = 3 Or Cel = 4 Then Cel.Interior.Color = 65535
        If Cel = 6 Or Cel = 8 Or Cel = 9 Then Cel.Interior.Color = 49407
        If Cel = 12 Or Cel = 16 Then Cel.Interior.Color = 192
        Next Cel
        Range("P7:P600").Interior.Color = -4142
    End Sub

A+ à tous
 
Bonjour à tous,

Peux-tu essayer :

VB:
Option Explicit

Sub Coloriage()
    Dim Cel As Range
    For Each Cel In Range("H7:HH600").SpecialCells(xlCellTypeFormulas, 23)
        If Cel = "" Then Cel.Interior.Color = -4142
        If Cel = 1 Or Cel = 2 Then Cel.Interior.Color = 5296274
        If Cel = 3 Or Cel = 4 Then Cel.Interior.Color = 65535
        If Cel = 6 Or Cel = 8 Or Cel = 9 Then Cel.Interior.Color = 49407
        If Cel = 12 Or Cel = 16 Then Cel.Interior.Color = 192
    Next Cel
    Range("P7:P600").Interior.Color = -4142
End Sub

A+ à tous
 
C'est fait... mais je viens de découvrir un nouveau soucis... (c'est la que je me dis que ce n'est vraiment pas mon métier) : lorsque j'enregistre mon fichier Excel, je le ferme, je le ralume... la macro a disparu ?! comment est-ce possible ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
340
Retour