VBA destacando uma célula se o intervalo correspondente na mesma linha não estiver em branco

VBA destacando uma célula se o intervalo correspondente na mesma linha não estiver em branco

Estou tentando impor o nome do alimento na coluna B de um arquivo se a coluna D a DX (Qty) tiver algum valor.

O racional é que caso seja recebido algum novo pedido de alimento que não apareça no arquivo, o usuário pode digitar temporariamente o nome do alimento e depois inserir a quantidade. Isso é para garantir que o operador não insira um valor por engano ou se esqueça de transmitir as informações do novo item adicionado.

É possível adicionar um botão que possa verificar todas as folhas de D6 a DX98 e se alguma quantidade encontrada e se a célula correspondente em C estiver vazia marca C como vermelho e uma simples MsgBox avisa que há um erro no arquivo.

O arquivo no qual estou trabalhando é este: http://s000.tinyupload.com/?file_id=00523976624440052148

Responder1

Abra Macros/Visual Basic, clique duas vezes na planilha 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

Verifica a cobertura da área D6:DW98e se existe algum valor em uma linha semNome do itemePreço unitário, ele marcará essas células em vermelho até que você escreva algo nelas.

O código é muito fácil de modificar se você quiser personalizá-lo.

informação relacionada