2017-10-13 3 views
0

Dans le code ci-dessous, si le code trouve "0" dans une cellule de la colonne G, peu de cellules dans cette rangée sont colorées, je voudrais avoir ces cellules colorées la valeur "0" se trouve dans la colonne G et la colonne H dans la même rangée, comment cela peut-il être fait?Sélectionner la condition pour la valeur de deux cellules et colorer la ligne

With Worksheets("Sheet3") 


    For Each cell In Range("G2:G" & LastRow) 
     If cell.Value = "0" Then 
      cell.Range("A1:F1").Offset(0, -5).Interior.ColorIndex = 20 
     ElseIf cell.Value = "1" Then 
      cell.Range("A1:F1").Offset(0, -5).Interior.ColorIndex = 43 
     Else 
      cell.EntireRow.Interior.ColorIndex = xlNone 
     End If 
    Next 
End With 
+0

Mise en forme conditionnelle: '= AND ($ G1 = 0 , $ H1 = 0) ' –

Répondre

1

Votre code peut être simplifié comme celui-ci pour colorer les cellules de A à F d'une ligne donnée ayant 0 dans G et H:

With Worksheets("Sheet3") 
    For Each cell In Range("G2:G" & LastRow) 
     currentRow = cell.Row '<-- change 
     If cell.Value = 0 And Range("H" & currentRow).Value = 0 Then '<-- change 
      Range("A" & currentRow & ":F" & currentRow).Interior.ColorIndex = 20 '<-- coloring from A to F of the same row 
     End If 
    Next cell '<-- change 
End With 
+0

après avoir testé votre code Je viens de remarquer que le code traite la cellule vide comme s'il avait la valeur" 0 ", donc met également en surbrillance la cellule avec la valeur" 0 "dans la cellule vide à côté .... – FotoDJ

+0

Oui, car si la cellule est vide, elle est considérée comme "zéro". Vous pouvez simplement ajouter un autre test et cell.Value <> "" pour éviter cela. –

+0

J'ai compris, merci. – FotoDJ