Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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!

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)
 

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
154
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…