VBA - Classification listes <= />=

Résolu/Fermé
Utilisateur anonyme - 10 janv. 2017 à 08:36
 Utilisateur anonyme - 10 janv. 2017 à 11:09
Bonjour,

Depuis quelques jours maintenant je tente d'écrire une macro mais en vain.
Je dispose d'une liste ordonnée de 42 nombres que je souhaite comparer avec 3 autres listes ordonnées, de la même manière, afin de catégoriser la première.

Mes catégories représentent des limites de sorte :

Liste 1 : A=1, B=2, C=3
Liste 2 : A=2, B=3, C=4
Liste 3 : A= 3, B=4, C=5 ...

Je souhaiterais, par comparaison, que ma liste échantillon soit catégorisée en "Liste " si 1<A<3, 2<B<4 et 3<C<5.

Une fois la liste catégorisé il s'agirait de le mentionner par un boîte de dialogue ou sur une case et d'identifier la catégorie des nombres individuellement.

Voilà ce que j'ai tenté :
(mes listes sont écrites en ligne sur excel : ligne 4 pour la liste 1 jusqu'à la ligne 7 pour la liste 4. Mon échantillon est placé ligne 9 et la cellule (10,10) me sert à écrire le résultat global).

Sub Macro1()
Dim i As Integer

For i = 2 To 41


If Cells(9, i) > Cells(7, i) And Cells(9, i) > Cells(6, i) Then
Cells(9, i).Interior.ColorIndex = 3
Cells(10, 2).Interior.ColorIndex = 3
Cells(10, 2) = "Hors Catégorie"

ElseIf Cells(9, i).Value <= Cells(4, i).Value Then 'Liste 1
Cells(9, i).Interior.ColorIndex = 6
Cells(10, 2).Interior.ColorIndex = 6
Cells(10, 2) = "Liste1"

ElseIf Cells(4, i) < Cells(9, i).Value <= Cells(5, i).Value Then 'Liste2
Cells(9, i).Interior.ColorIndex = 44
Cells(10, 2).Interior.ColorIndex = 44
Cells(10, 2) = "Liste 2"

ElseIf Cells(5, i) < Cells(9, i) <= Cells(6, i) Then 'Liste 3
Cells(9, i).Interior.ColorIndex = 45
Cells(10, 2).Interior.ColorIndex = 45
Cells(10, 2) = "Liste3"

ElseIf Cells(6, i) < Cells(6, i) < Cells(9, i) <= Cells(7, i) Then 'Liste4
Cells(9, i).Interior.ColorIndex = 46
Cells(10, 2).Interior.ColorIndex = 46
Cells(10, 2) = "Liste4"

End If
Next
End Sub


Chaque élément est bien identifié individuellement selon sa liste (grâce à la mise en couleur de la cellule correspondant).
Mais le résultat globalement n'est déterminé que par le dernier élément de la liste et non l'ensemble. Je n'ai donc pas de résultat fiable.


En espérant avoir été assez clair.

Merci d'avance.


1 réponse

Utilisateur anonyme
10 janv. 2017 à 11:09
J'ai trouvé une solution en ajoutant une étape de manière à savoir quelle est la liste de valeur la plus grande à laquelle mon échantillon correspond.

Merci
0