Detecter des cellules ne contenant pas une certaine couleur

Bonjour,

Je cherche à détecter via une macro les cellules ne comprenant pas la couleur de fond RGB(192, 224, 255) dans une plage définie.

J'ai déjà ce code mais il ne sélectionne qu'une cellule :

Sub test()

Dim Cel As Range

For Each Cel In Range("C4:I15")
     If Not Cel.Interior.Color = RGB(192, 224, 255) Then
          Cel.Select
          Exit For
     End If
Next Cel

End Sub

Il faudrait que toutes les cellules sans la couleur de fond spécifique soient sélectionnées, pas que la première de la plage.

Quelqu'un aurait la solution SVP?

Merci d'avance

Bonsoir TRNX , le forum,

Un essai......

Sub essai()
 Dim i As Integer, j As Integer, msg1 As String, msg2 As String
  For i = 4 To 15
   For j = 3 To 9
    If Cells(i, j).Interior.Color <> RGB(192, 224, 255) Then
     msg = msg & "," & Cells(i, j).Address(False, False)
    End If
   Next j
  Next i
   msg2 = Right(msg, Len(msg) - 1) 'supprime le premier caractère (virgule en trop)
   Range(msg2).Select
End Sub

Il y a certainement plus simple.....

31classeur1.xlsm (19.42 Ko)

Cordialement,

bonsoir xorsankukai, trnx

xorsankukai j'ai fait approximativement le même code que toi et j’étais en train de me casser la tête sur

Range(msg2).Select

nommé plage chez moi et qui provoque une erreur d’exécution ???

A plus sur le forum

Bonjour à tous,

autre façon :

Sub test()
    Dim Cel As Range, pl As Range
    For Each Cel In Range("C4:I15")
        If Not Cel.Interior.Color = RGB(192, 224, 255) Then
            If pl Is Nothing Then Set pl = Cel Else Set pl = Union(pl, Cel)
        End If
    Next Cel
    pl.Select ' si tu veux sélectionner
    pl.Name = "maSelection" ' si tu veux nommer la plage
End Sub

eric

Bonjour à tous,

Merci pour votre aide et votre temps passé à m'aider.

Ton code marche parfaitement eriiic merci beaucoup !

Problème résolu.

A+

Bonjour à tous,

@ papyg : je me suis aussi cassé la tête pour le select, (d'où le petit bricolage pour supprimer la virgule qui m'embétait, ).

@ériiic : redoutablement efficace , comme d'habitude,

Je bloquais sur ce point

Set pl = Union(pl, Cel)

merci à toi ,

@TRNX: tu aurais pu me confirmer si ma solution était fonctionnelle chez toi, histoire de ne pas avoir perdu mon temps, quoique, avec ce confinement, ça m'aura au moins permis de penser à autre chose et de faire travailler mes méninges,

Bonne journée,

Jean-eric ?

Bonjour à tous,

@ papyg : je me suis aussi cassé la tête pour le select, (d'où le petit bricolage pour supprimer la virgule qui m'embétait, ).

@Jean-eric : redoutablement efficace , comme d'habitude,

Je bloquais sur ce point

Set pl = Union(pl, Cel)

merci à toi ,

@TRNX: tu aurais pu me confirmer si ma solution était fonctionnelle chez toi, histoire de ne pas avoir perdu mon temps, quoique, avec ce confinement, ça m'aura au moins permis de penser à autre chose et de faire travailler mes méninges,

Bonne journée,

Bonsoir,

Oui désolé j'ai en effet oublié de donner un retour sur ton code : je ne l'ai pas testé, j'ai pris directement celui d'eriiic car il m'avait l'air plus propre (ne le prends pas mal ).

Quoi qu'il arrive merci de m'avoir aidé et proposé quelque chose!

A+

Re,

Jean-eric ?

Milles excuses ériiic, j'ai rectifié...

j'ai pris directement celui d'eriiic car il m'avait l'air plus propre (ne le prends pas mal ).

Comme je te comprends.... , ceci dit, mon code fonctionne également,

Bonne soirée,

Rien de grave, ça m'a amusé

Rechercher des sujets similaires à "detecter contenant pas certaine couleur"