Colorer cellules en fonction du résultat d'autres cellules

Bonjour le forum,

Je m’adresse à vous encore une fois de plus parce que je suis incapable d’apporter une solution à mon problème malgré mes tentatives.

Je vous explique en détail mon souhait afin que vous puissiez m’aider. D’avance merci pour votre soutien.

Mon problème est le suivant :

En premier lieu, je souhaite vous informer que j’ai deux tableaux, le 1er tableau (de droite) contient 300 cellules : de (B2 :M26), le 2e tableau contient autant de cellules : de (R2 : AC26).

Chaque cellule du premier tableau à une cellule qui lui correspond dans le 2e tableau, exemple : B2 correspond à R2, la C2 correspond à S2 etc… et enfin la M26 correspond à AC26.

L’idée est de parcourir mon 1er tableau (de droite) et à chaque fois que je trouve la lettre "A" dans une cellule, on colore en gris la cellule qui lui correspond dans le 2e tableau.

De même, dans le tableau de droite, lorsque je trouve une cellule qui contient la lettre "B", colorer la cellule qui lui correspond en rouge clair dans le 2e tableau.

J’ai mis à votre disposition les codes des couleurs pour toutes les couleurs utilisées.

RGB(221, 217, 196) Pour la letre "A"

RGB(221, 162, 159) Pour la letre "B"

RGB(255, 255, 0) Pour la letre "C"

RGB(146, 208, 80) Pour la letre "D"

RGB(102, 255, 153) Pour la letre "E"

RGB(0, 176, 240) Pour la letre "F"

RGB(255, 0, 255) Pour la letre "K"

RGB(255, 153, 102) Pour la letre "BK"

RGB(102, 255, 255) Pour la letre "CK"

RGB(204, 204, 0) Pour la letre "A4T"

RGB(153, 102, 255) Pour la letre "B4T"

RGB(204, 51, 0) Pour la letre "C4T"

RGB(204, 153, 0) Pour la letre "AK4T"

RGB(255, 0, 0) Pour la letre "BK4T"

RGB(198, 239, 206) Pour la letre "CK4T

Je vous souhaite bonne programmation et merci encore.

Salutations.

Bonsoir,

Sub ColorerTableau()
    Dim abc, r, g, b, i%, j%, m%
    abc = Split("A B C D E F K BK CK A4T B4T C4T AK4T BK4T CK4T")
    r = Array(221, 221, 255, 146, 102, 0, 255, 255, 102, 204, 153, 204, 204, 255, 198)
    g = Array(217, 162, 255, 208, 255, 176, 0, 153, 255, 204, 102, 51, 153, 0, 239)
    b = Array(196, 159, 0, 80, 153, 240, 255, 102, 255, 0, 255, 0, 0, 0, 206)
    With ActiveSheet.Range("B2:M26")
        .Offset(0, 16).Interior.ColorIndex = xlColorIndexNone
        For i = 1 To 25
            For j = 1 To 12
                If .Cells(i, j).Value <> "" Then
                    m = Application.Match(.Cells(i, j).Value, abc, 0) - 1
                    .Cells(i, j).Offset(0, 16).Interior.Color = RGB(r(m), g(m), b(m))
                End If
            Next j
        Next i
    End With
End Sub

Cordialement.

Bonjour

Bonjour MFerrand

Une autre manière (plus compliquée - moins simple-)

A tester

Salut Banzai,

Subtil la récupération des couleurs !

Bonjour MFerrand, Banzai64 et le Forum,

Après un seul essai et d'un seul coup d'œil, le résultat est celui que j'attendais de vos deux propositions.

Quel plaisir! Deux solutions qui marchent aussi bien l'une que l'autre.

Grand MERCI à tous les deux.

Quand je vois le code comment vous l’avez réalisé chacun de son coté, j’aurais du mal à trouver une solution.

Mes amitiés et cordiale poignée de de main à tous les deux.

Bonjour MFerand, Bonzai64 et le Forum,

Je vous propose de continuer l’aventure en vous demandant votre aide pour une utilisation plus confortable du fichier en espérant que c’est faisable.

Voici l’explication de ma demande.

Pour commencer, vous pouvez remarquer que c’est l’utilisateur qui introduit le nombre de fois que les lettres : A, B …et CK4T doivent figurer sur le 1er tableau (B2 :M26), tous ces nombres se trouvent dans la colonne (P2 16).

Dans notre exemple, nous avons ceci :

32 x A, 32 x B, 32 x C, 19 X D, 8 x E, 6 x F, 8 x K, 0 x BK, 0 x CK, 30 x A4T, 42 x B4T, 36 x C4T, 0 x AK4T, 0 x BK4T et enfin 0 x CK4T.

Y’aurait-il moyen que le programme sélectionne automatiquement le nombre de fois (voir cellule P2) que la lettre "A" doit être sélectionnée dans le tableau 1 (B2 :M26), sachant que lorsque la sélection pour la lettre "A" est terminée, On passe à la ligne suivante du tableau pour faire de même pour la lettre "B".

Et ainsi de suite jusqu’à la cellule contenant les lettres "CK4T".

Je reste à votre disposition pour d’avantage d’explications.

Bonne programmation et merci d’avance

14tableaux.zip (38.31 Ko)

Bonjour

A vérifier

Salut à vous !

Je vois que j'arrive après coup, et pas encore assez réveillé pour suivre ton cheminement....

Bonne journée à vous.

Bonjour Bonzai64 et MFerand,

Merci à Banzai64 pour sa dernière contribution, un seul mot à dire : "Magnifique".

Il y'aura encore une mise à jour à apporter à ce fichier, je prépare cela et je vous expédie ma demande.

Merci les artistes.

A très bientôt.

Bonjour Bonzai64 et MFerand et le forum,

Maintenant on passe à ma toute dernière demande concernant ce fichier.

Pour vous permettre transcrire votre code, je me permets de vous demander d’utiliser le fichier en pièce puisque car c’est ma dernière version.

Au fait, l’idée est de parcourir le tableau de gauche, récupérer toutes les lettres qui y sont inscrites sur chaque cellule, pour les mettre dans le les cellules du tableau de droite, en prenant soin de de conserver les nombres qui figurent dans ce dernier et regrouper les données des deux tableaux.

Comme j’ai peur de ne pas bien m’exprimer, un exemple vaut mieux qu’un long discours.

On commence au début du tableau de gauche, on récupère la valeur de la 1ere cellule B2, on lit également la valeur de la 1ere cellule S2 du tableau de droite et enfin on regroupe les données de ces deux cellules en S2

Valeur B2 = "A", Valeur S2 = "97", On écrit dans la cellule S2 : "A 97"

Idem pour les cellules suivantes :

Valeur C2 = "A", Valeur T2 = "98", On écrit dans la cellule T2 : "A 98"

Et ainsi de suite jusqu’aux dernière cellules :

Valeur M26 = vide, Valeur AD26 = "492", on laisse la cellule comme elle est, AD26= "492"

Je reste à votre disposition pour plus d’informations.

Bonne programmation et au plaisir de vous lire.

Salutations.

18etagere.xlsm (59.95 Ko)

Bonjour

A vérifier

Bonjour Bonzai64,

Grand Merci pour votre aide, cela fait plaisir.

Ce fichier est totalement résolu grâce à votre soutien.

A nous converser pour une autre situation.

Cordiale poignée de mains.

Rechercher des sujets similaires à "colorer fonction resultat"