Abra macros / Visual Basic, clique duas vezes na folha e insira este código no lado direito:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wkb As Workbook
Dim wks As Worksheet
Dim wksRange As Range
Set wkb = ThisWorkbook
Set wks = ActiveSheet
For i = 6 To 98 ' rows to be sweeped
Set wksRange = wks.Range(Cells(i, 4), Cells(i, 127)) ' check from column 4 (D) to 127(DW)
'Paint grey cells on columns A to C
color_cell_a = Cells(i, 1).Interior.Color
Cells(i, 2).Interior.Color = color_cell_a
Cells(i, 3).Interior.Color = color_cell_a
'If on the row there are values
If WorksheetFunction.CountA(wksRange) <> 0 Then
itemName = Cells(i, 2)
itemPrice = Cells(i, 3)
'Change color on column B
If itemName = "" Then
Cells(i, 2).Interior.Color = RGB(184, 0, 0)
End If
'Change color on column C
If itemPrice = "" Then
Cells(i, 3).Interior.Color = RGB(184, 0, 0)
End If
End If
Next i
End Sub
Ele verifica a área que cobre D6:DW98
e, se houver um valor em uma linha sem Nome do item e Preço unitário , marcará em vermelho essas células até você escreva qualquer coisa sobre eles.
O código é muito fácil de modificar se você quiser personalizá-lo.