Rechercher des valeurs dans plusieurs lignes avec conditions

Save92

XLDnaute Nouveau
Bonjour tout le monde!
Voila j'ai une petite macro à effectuer et je penses mal m'y prendre.
Je souhaite dans une plage, chercher dans chaque cellules si il y a OUI ou NON (avec possibilité de commentaires derrière). Si dans la case il y a OUI alors je met le texte en vert, si il y a NON je met le texte en rouge :
Code:
Sub Verif_OUI_NON()

Dim i As Integer
Dim j As Integer

Range("A1:M" & Range("A65536").End(xlUp).Row).Interior.ColorIndex = xlNone ' retire toutes les couleurs du test précédent
Range("A1:M" & Range("A65536").End(xlUp).Row).Font.ColorIndex = 1 ' met la couleur du texte en noir

  Application.ScreenUpdating = False
For Each c In Range("C3: M35")

If c.Value <> "" Then
If c.Find(OUI) Is Nothing Then 'Is Nothing
c.Font.Color = vbGreen
ElseIf c.Find(NON) Is Nothing Then
c.Font.Color = vbRed
End If
End If
Next

Donc si il y a OUI, il me met le texte en vert et si il y a NON il me met le texte en... Vert! :mad:

Deuxième point, je souhaite que dans les colonnes C et D, si il a OUI dans les 2 cellules de la même ligne mettre TOUTE la ligne dans une couleur (lavande par exemple) est il possible de faire cela?
Code:
For Each c In Range("A1:M" & Range("A65536").End(xlUp).Row)
i = 3
j = 2
Do While (i <= 32)
j = 2
Do While (j <= 12)
If c.Offset(i, j).Find(OUI) Is Nothing And c.Offset(i, j + 1).Find(OUI) Is Nothing Then
Rows(i).Interior.ColorIndex = 39
End If
j = j + 1
Loop
i = i + 1
Loop
Next

J'utilise pour la premiere fois la fonction Find mais j'ai l'impression que celle ci ne repond pas à mes attentes, ou alors c'est que je mis prend mal.

Merci pour votre future aide :)rolleyes: je l'espere) :D
 

job75

XLDnaute Barbatruc
Re : Rechercher des valeurs dans plusieurs lignes avec conditions

Bonsoir Save92,

La boucle :

Code:
For Each c In Range("C3: M35")
  If c.Value <> "" Then
    If InStr(c, "OUI") Then
      c.Font.Color = vbGreen
      If c.Column = 3 And InStr(c.Offset(, 1), "OUI") _
        Then c.EntireRow.Interior.ColorIndex = 7 'lavande ??
    ElseIf InStr(c, "NON") Then
      c.Font.Color = vbRed
    End If
  End If
Next
A+
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
141

Statistiques des forums

Discussions
312 115
Messages
2 085 453
Membres
102 890
dernier inscrit
selkis