Como verificar se as informações são inseridas na célula apenas se a célula adjacente não estiver em branco. Excel VBA

1

Eu tenho duas colunas, uma (B) com um nome e a outra (A) com um número. Estou tentando fazer com que uma mensagem de erro me impeça de fechar o Excel se as células na coluna A estiverem em branco, mas as células adjacentes na coluna B não estiverem em branco.

Por exemplo, se a célula B2 é preenchida com um nome, então a célula adjacente A2 também deve ter um número para acompanhar ... caso contrário, o usuário será impedido de fechar o Excel.

Eu também gostaria que as células que estão faltando informações na coluna A sejam destacadas em vermelho.

A ideia é evitar que os usuários não digitem as informações na coluna A, onde há um nome presente na coluna b.

Alguém poderia me ajudar com isso?

Obrigado

    
por J Doe 16.05.2018 / 21:09

1 resposta

3

Você pode colocar isso no módulo ThisWorkbook no projeto:

PrivateSubWorkbook_BeforeClose(CancelAsBoolean)DimlastRowAsLongDimwsAsWorksheetSetws=ThisWorkbook.Worksheets("Sheet1") ' Change this to the sheet you need to check!
lastRow = ws.Range("B" & Rows.Count).End(xlUp).Row

Dim rng As Range, cel As Range
Set rng = ws.Range(ws.Cells(1, 2), ws.Cells(lastRow, 2))

For Each cel In rng
    If cel.Offset(0, -1).Value = "" And cel.Value <> "" Then
        MsgBox (cel.Address & " is empty. Please populate before closing file.")
        cel.Offset(0, -1).Interior.Color = RGB(255, 0, 0)
        Cancel = True
        ' Exit Sub
    End If
Next cel

End Sub

Antes de fechar uma planilha, ele verificará o intervalo A1:A[last row in col. B] e verá se as células da coluna A estão vazias, onde a coluna B não está. Será então messagebox o endereço para inserir informações. em.

    
por 16.05.2018 / 21:33