XL 2016 VBA/ Coloration par valeur de quartiles / exécution mais mauvaise programmation

Zhanties

XLDnaute Nouveau
Bonjour,

je remercie par avance les personnes qui prennent de leur temps pour lire ce message.

Voici le descriptif de mon projet :
j'ai 4 tableaux de données qui sont tous rangés par ordre de grandeur. Chacun de ces tableaux disposent de 4 quartiles qui leurs sont affiliés par rapport à ces dites valeurs.
Le but de ma macro est d'effectuer une mise en page en coloriant les lignes selon le quartile qui lui est affilié :
exemple : B10 (première donnée de mon tableau) est la meilleur performance du tableau 1. Il est inférieur ou = au quartile 1. De ce fait une valeur bleue foncée lui est attribué. Pour chaque valeurs de chaque tableaux, le quartile correspondant est indiqué dans une colonne pour plus de lisibilité et de compréhension.

Ma macro se lance et n'a pas de problème d'exécution. Cependant les couleurs ajoutées ne sont pas toujours bonnes. Par exemple, toutes les valeurs de B10 à B33 sont issus du Quartile 1 et elles devraient logiquement être tous de la même couleur, ce qui n'est pas le cas.
Mon problème est donc dû au codage en lui-même.

Le raisonnement de mon codage était : si ma var <= à la valeur du quartile 1 alors tel type de couleur et ceux pour les 4 valeurs de quartile.
J'ai effectué mon VBA sous 3 méthodes différentes qui m'ont tous données le même résultat niveau coloration :

Code:
Select Case Var
           
           
               Case Is <= Cells(1, 23)
                Plage.Interior.Color = RGB(224, 64, 64)
           
                Case Cells(1, 23) To Cells(2, 23)
                Plage.Interior.Color = RGB(255, 224, 224)
           
                Case Cells(2, 23) To Cells(3, 23)
                Plage.Interior.Color = RGB(192, 224, 255)
           
                Case Cells(3, 23) To Cells(4, 23)
                Plage.Interior.Color = RGB(160, 192, 224)
           
       
            End Select



puis :


If Var <= Cells(1, 28) Then
                Plage.Interior.Color = RGB(224, 64, 64)
           
                ElseIf Var <= Cells(2, 28) Then
                Plage.Interior.Color = RGB(255, 224, 224)
           
                ElseIf Var <= Cells(3, 28) Then
                Plage.Interior.Color = RGB(192, 224, 255)
           
                ElseIf Var <= Cells(4, 28) Then
                Plage.Interior.Color = RGB(160, 192, 224)
           
       
            End If



et enfin :

Select Case Var
           
           
               Case Is <= Cells(1, 33)
                Plage.Interior.Color = RGB(224, 64, 64)
           
                Case Is <= Cells(2, 33)
                Plage.Interior.Color = RGB(255, 224, 224)
           
                Case Is <= Cells(3, 33)
                Plage.Interior.Color = RGB(192, 224, 255)
           
                Case Is <= Cells(4, 33)
                Plage.Interior.Color = RGB(160, 192, 224)
           
       
            End Select



Je vous met bien entendu mon fichier pour une meilleur compréhension avec le code en entier ainsi que la feuille excel en visuel.

Cordialement
 

Pièces jointes

  • Mise_En_Page_Quartile.xlsm
    54.9 KB · Affichages: 11

Zhanties

XLDnaute Nouveau
Je vois.
Bon c'était une erreur bête mais redoutable (et je n'y aurait vraiment pas pensé), donc merci beaucoup.
Avant de clôturer ce topic, je voudrais poser une question plus secondaire :
sauriez-vous pk la mise en couleur continue sur des cases vides sur les tableaux 3 & 4 ? Alors que celles du tableaux 1 et 2 est nickel.
 

Dranreb

XLDnaute Barbatruc
Votre UsedRange va jusqu'à la ligne 120.
Le traitement colore jusqu'à cette ligne les nombres nuls si les derniers quartiles sont positifs. Dans le cas contraire aucune condition n'est vraie.
Sans doute auriez vous intérêt à redéfinir DerLig autrement et pour chaque groupe de colonnes. Par exemple pour le groupe J:M :
DerLig = Ws.[J1000000].End(xlUp).Row
 

Discussions similaires

Réponses
0
Affichages
352
Réponses
3
Affichages
203

Statistiques des forums

Discussions
315 094
Messages
2 116 153
Membres
112 670
dernier inscrit
Flow87