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. 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/

    1. Contributeur
      Merci !

      de rien....
    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
    3. Contributeur
      effectivement !
      Merci