Rechercher des valeurs dans plusieurs lignes avec conditions

  • Initiateur de la discussion Initiateur de la discussion Save92
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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) 😀
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
179
Réponses
3
Affichages
195
Réponses
5
Affichages
241
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Retour