Problème code vba

Bonjour j'aurai besoin d'un coup de main pour voir ce qui ne va pas dans ce code . Excel me dit qu'il y a une erreur sur cette ligne {if cell.value=cells(z,3).value } mais je vois pas l'erreur.
Merci

Sub CouleurNew()
Application.ScreenUpdating = False

Set F1 = Worksheets("worksheet")

With F1
Set plage = .Range("D3:AT10000")
End With

For Z = 3 To 6

    For Each cell In plage
    
    cell.Select
    
    If cell.Value = Cells(Z, 3).Value Then Selection.Interior.Color = F1.Cells(Z, 3).Interior.Color
    
    Next
    
Next Z


Application.ScreenUpdating = True

End Sub

2 réponses

  1. Modérateur
    Quelle erreur ?
    Quel message ?
    0
    1. Contributeur
      Bonjour

      ta plage comporte quelques 43000 Cellules avec en plus un "select" particulièrement chronophage , si on parcoure cellule par cellule, ce sera très long
      l'astuce consiste à chercher(find) dans la plage les cellules ayant la valeur de C3( puis C4,5,6)

      regarde cette proposition
      https://mon-partage.fr/f/aht6VQIP/

      0
      1. Contributeur
        Merci !

        de rien....
        0
      2. Sub Nettoyer()
        Dim Plage As Range
        Set Plage = Range("D3:AT10000")
        Plage.Interior.ColorIndex = -4142
        End Sub

        J'ai du faire ça pour que ta macro marche, "variable Plage non définie" -> bug
        0
      3. Contributeur
        effectivement !
        Merci
        0