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

0

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

O Rational é se qualquer novo pedido de comida for recebido e não aparecer 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 esqueça de transmitir informações do novo item que eles adicionaram.

É possível adicionar um botão, que poderia verificar todas as planilhas do D6 para o DX98 e, se qualquer quantidade encontrada e se a célula correspondente em C estiver vazia, as marcas C ficarem vermelhas e uma MsgBox simples solicitar que haja uma erro no arquivo.

O arquivo em que estou trabalhando é o seguinte: link

    
por Suvodip Mitra 21.05.2015 / 06:57

1 resposta

0

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.

    
por 21.05.2015 / 12:28