Problème code vba

thithi25 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Quelle erreur ?
    Quel message ?
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Merci !

      de rien....
      0
    2. michael_scott Messages postés 65 Statut Membre
       
      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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      effectivement !
      Merci
      0