Tornar uma célula obrigatória com base na entrada da célula anterior


0

Eu estou olhando para alcançar o seguinte:

Coluna H tem 5 entradas possíveis de uma lista de validação de dados:

Pass, High, Medium, Low & N/A

E se Coluna H é também High, Medium ou Low, Eu preciso Coluna I para exigir imediatamente um Comente por meio de um caixa de diálogo .

Como posso configurar isso?

Também pode ser benéfico acrescentar que eu não sei nada sobre script / código escrito nem eu compreendo qualquer "jargão do Excel", eu sou um usuário e & amp; tudo o que sei é auto-ensinado usando trial & amp; erro!


A validação de dados pode ser possível para isso.
LPChip

A validação de dados parece não funcionar para isso. Você pode fazê-lo pop-up e informar ao usuário que a coluna I também precisa ser preenchida, mas para não receber esse erro, primeiro eles precisam preencher a coluna I, e isso funcionaria de maneira estranha do ponto de vista do usuário. Portanto, uma Macro parece ser o único caminho a percorrer.
LPChip

É possível usar a formatação condicional para fazer com que a célula na Coluna I mude de cor se eles não inseriram nada, mas cabe ao usuário fazê-lo.
LPChip

Obrigado por respostas, mas eu preciso de um erro para mostrar para solicitar ao auditor que complete um comentário. Eu sou inútil quando se trata de escrever scripts / códigos para macros.
Wozza001

1
Por favor, entenda, SuperUser não é um "Por favor, escreva-me um tipo de serviço de script." Se você não conseguir fornecer uma macro, faça uma pesquisa primeiro.
LPChip

Respostas:


0

Com base no meu entendimento da sua pergunta, sugiro uma solução VBA. Neste exemplo, o intervalo da coluna de amostra é H2: H7 e sua validação pretendida já está em vigor para esse intervalo.

Na sua planilha, pressione ALT + F11 para acessar o VBA Editor. Sob o painel esquerdo, consulte Microsoft Excel Objects. Abaixo, clique duas vezes na planilha desejada para abrir a janela de programação Even Driven. Na primeira lista suspensa, selecione Planilha e, na segunda lista suspensa, selecione Alterar. Este é o Evento de Mudança da Planilha. As linhas a seguir serão exibidas no editor de código.

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Coloque o seguinte código entre essas duas linhas.

If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then
    Exit Sub
End If

Dim com As String
Dim comm1 As String
'Specify the range below. Set single column range else the code will error out
Set isect = Application.Intersect(Target, Range("H2:H7"))
If isect Is Nothing Then

Else

 If Target.Value = "High" Or Target.Value = "Medium" Or Target.Value = "Low" Then
     com = "Enter comment in " & Target.Offset(0, 1).Address(RowAbsolute:=False, columnabsolute:=False)

     Do While comm1 = ""
        comm1 = Application.InputBox(prompt:=com, Type:=2)
        On Error GoTo myloop
        If comm1 = False Then
            comm1 = ""
        End If
myloop:
     On Error GoTo -1
     Loop
     Target.Offset(0, 1).Value = comm1

 Else
    Target.Offset(0, 1).Value = ""  'Remove this line if not desired
 End If

End If

Salve o arquivo como pasta de trabalho do Excel habilitado para macro. Volte na planilha. Teste este código selecionando os valores pretendidos na caixa de lista de validação e veja se funciona para você e atende à sua exigência. Esse código pode não ter verificação extensiva de erros.

Uma pequena coisa que eu adicionei é mais tarde se você alterar o status para Passar o comentário é removido da coluna I.

enter image description here


Obrigado por isso, embora, por algum motivo, não esteja funcionando - eu mudei o intervalo de H2: H7 para H17, mas sem alegria. Talvez eu esteja salvando isso incorretamente?
Wozza001

Qual versão do Excel você tem?
patkim

Excel 2007 .....
Wozza001

Você salvou o arquivo como xlsm de pasta de trabalho habilitado para macro?
patkim

Sim, é salvo como macro ativada
Wozza001
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.