Eviter 2 toto en rouge avec for each

  • Initiateur de la discussion carlos
  • Date de début
C

carlos

Guest
Bonjour

Cette macro me compare deux plages et attribue une couleur en fonction de la valeur renvoyée par la cellule cellres.offset(12,0) de la plage .

Sub foreachcolor()
Dim cellres As Variant, celltab As Variant
Dim poule As Byte, NbreDePoules As Byte


For Each cellres In Range('ResutHorPoule1')
For Each celltab In Range('nomP1')
If celltab = cellres Then
Select Case cellres.Offset(12, 0).Value
Case 1
celltab.Interior.ColorIndex = 3
Case 2
celltab.Interior.ColorIndex = 46
Case 3
celltab.Interior.ColorIndex = 6
Case 4
celltab.Interior.ColorIndex = 4
Case 5
celltab.Interior.ColorIndex = 23
End Select
End If

Next
Next

End Sub
le probleme est que ma plage nomP1(nom avec doublons) contient plusieurs fois la valeur comparée avec la plage ResutHorPoule1(sans doublon).

J'aimerais que si une personne à déja eu une couleur alors qu'il passe à la suivante pour ne pas avoir par exemple 2 toto en rouge .

Merci
 

21ch181

XLDnaute Junior
Personnellement je rajouterais une condition dans le if :

If (celltab = cellres and celltab<>celltab.offset(-1,0)) then

qui permet de comparer à la cellule précédente de nomP1.

La condition : que nomP1 soit triée.

Est ce le cas ? est ce possible ?

Alain
 

Discussions similaires

Réponses
12
Affichages
288

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso