Limpando uma entrada suspensa baseada no valor de outra célula

0

Estou construindo um sistema de controle de estoque no excel.

Cada item tem o seguinte:

  • Quantidade em estoque
  • Nível de reordenação
  • Encomenda de estoque?
  • Encomendado?

A ideia é que, quando a quantidade < = nível de pedido, o "estoque de pedidos"? célula para esse produto dirá "Sim" e destaque em vermelho usando formatação condicional. Isso é implementado e é uma instrução IF simples. O que deve acontecer é que, se essa caixa exibir "Sim", o membro da equipe pode escolher em branco ou "Sim" em uma lista suspensa na coluna ordenada, para que outros membros da equipe não reordenem o mesmo produto. Mais uma vez, isso funciona.

A questão é que eu gostaria de limpar o pedido? célula quando a célula de estoque de pedidos está em branco. Isso significa que quando o produto é entregue e a quantidade é atualizada, o "pedido" é celular ainda não vai dizer sim.

Eu li através de vários tutoriais do Excel na internet, mas nenhum parece se encaixar no problema. Eu tentei usar um comando IF (AND (), List, "") no entanto, foi rejeitado pelo excel.

Uma foto pode ser encontrada aqui

Espero que isso faça sentido. Agradecemos antecipadamente.

EDITAR:

Ainda estou lutando com isso. Usei uma pequena variação do código sugerido como resposta:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim oS As Long, i As Integer
oS = Cells(Rows.Count, "I").End(xlUp).row

' Loop through each row, I = "Reorder?" and J = ""
If Target.Column = 2 Then
    For i = 1 To oS
        ' If I is blank, set J to blank
        If Cells(i, "I").Value = "" Then
            Cells(i, "J").Value = ""
        End If
        ' If J is Yes, set I to blank
        If Cells(i, "J").Value = "Yes" Then
            Cells(i, "I").Value = ""
        End If
    Next i
End If
End Sub

No entanto, quando eu compilar isso e, em seguida, salve a pasta de trabalho, parece não ter efeito. A pasta de trabalho pode ser encontrada aqui se alguém quiser brincar.

    
por lukecolli98 12.02.2017 / 15:02

1 resposta

0

Até onde eu sei, você não pode controlar uma célula diferente com uma função, do que a célula que a contém, e você não pode adicionar uma função a uma célula com validação de dados ativa. Por favor, me diga se estou errado.

Assim, a maneira como eu abordaria isso seria usar o VBA. E a maneira mais simples que posso pensar é a seguinte:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim oS As Long, i As Integer
oS = Cells(Rows.Count, "I").End(xlUp).Row
If Target.Column = 2 Then
    For i = 1 To oS
        If Cells(i, "I").Value = "" Then
            Cells(i, "J").Value = ""
        End If
    Next i
End If
End Sub

Inserido no código da planilha "estoque". Talvez isso, talvez com alguma modificação, funcionasse para você?

    
por 12.02.2017 / 17:01