bloucle pour compter le nbre de fois qu'apparaît une couleur

licwimi

XLDnaute Nouveau
Bonjour à tous,
Selon mes paramètres, mes cellules ont un fond vert, orange, ou rouge.
J'aimerais mettre en début de ligne une cellule verte, orange ou rouge en fonction des couleurs de fond des cellules de cette ligne.
Si il y a au moins une case rouge dans la ligne, mettre la cellule de début en rouge
sinon si il y a au moins une case orange dans la ligne, mettre la cellule de début en orange
sinon si il y a au moins une case vert dans la ligne, mettre la cellule de début en vert
sinon mettre la cellule de début en blanc
Voici mon ébauche de code qui ne marche pas...
Code:
cellvert = 0
    cellorange = 0
    cellrouge = 0
    For j = 2 To 100
        If Cells(i, j).Interior.ColorIndex = vert Then
            cellvert = cellvert + 1
            Else
            If Cells(i, j).Interior.ColorIndex = orange Then
                cellorange = cellorange + 1
                Else
                If Cells(i, j).Interior.ColorIndex = rouge Then
                    cellrouge = cellrouge + 1
                End If
            End If
        End If
        Next j
    If cellrouge > 1 Then
        Cells(i, 1).Interior.ColorIndex = 3
        Else
        If cellorange > 1 Then
            Cells(i, 1).Interior.ColorIndex = 46
            Else
            If cellvert > 1 Then
                Cells(i, 1).Interior.ColorIndex = 10
                Else
                Cells(i, 1).Interior.ColorIndex = blanc
            End If
        End If
    End If
PS: mes cellcouleurs sont initialisées en Integer, i est la ligne en cours
 

licwimi

XLDnaute Nouveau
Re : bloucle pour compter le nbre de fois qu'apparaît une couleur

il manque les déclarations de variables avant:
Dim i As Long
Dim cellvert As Integer
Dim cellorange As Integer
Dim cellrouge As Integer
Dim cellblanche As Integer
Dim vert As Integer
Dim orange As Integer
Dim rouge As Integer
Dim blanc As Integer

Je ne cherche pas à tester mes cellules en colonne, mais en ligne. Du coup c'est pour ça que je n'ai pas mis For i = ... C'est en fait la ligne en cours qui est affectée à i.
la boucle For J= est là pour aller de la colonne 2 à la 100 pour la ligne i
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : bloucle pour compter le nbre de fois qu'apparaît une couleur

Re,


je persiste à dire que le code montré au post #1 est incomplet
Code:
cellvert = 0
    cellorange = 0
    cellrouge = 0
    For j = 2 To 100
        If Cells(i, j).Interior.ColorIndex = vert Then
            cellvert = cellvert + 1
            Else
            If Cells(i, j).Interior.ColorIndex = orange Then
                cellorange = cellorange + 1
                Else
                If Cells(i, j).Interior.ColorIndex = rouge Then
                    cellrouge = cellrouge + 1
                End If
            End If
        End If
        Next j
    If cellrouge > 1 Then
        Cells(i, 1).Interior.ColorIndex = 3
        Else
        If cellorange > 1 Then
            Cells(i, 1).Interior.ColorIndex = 46
            Else
            If cellvert > 1 Then
                Cells(i, 1).Interior.ColorIndex = 10
                Else
                Cells(i, 1).Interior.ColorIndex = blanc
            End If
        End If
    End If
PS: mes cellcouleurs sont initialisées en Integer, i est la ligne en cours
je ne vois nulle part une ligne de code qui donne une valeur à I
et si I ne prends pas quelque part une valeur, le code ne pourra pas fonctionner correctement

ce serait plus facile à comprendre si il y avait une fichier joint à la question

à+
Philippe
 

Discussions similaires

Réponses
0
Affichages
147
Réponses
4
Affichages
205

Statistiques des forums

Discussions
312 169
Messages
2 085 926
Membres
103 043
dernier inscrit
nouha nj