Lista suspensa vinculada?

2

Gostaria de vincular duas listas suspensas no Excel. A busca por soluções sempre resultou em listas suspensas em cascata . O que eu quero é duas listas suspensas com as mesmas opções. Quando você muda um, o outro também muda.

Eu tentei simplesmente referenciar um ao outro, mas é claro que recebo um erro de referência circular. Eu adoraria fazer isso sem o VBA, se possível, já que vou ter muitos deles, mas se não for viável, eu entendo.

    
por Scott Beeson 26.01.2016 / 18:54

2 respostas

1

O que você descreve não pode ser feito sem o VBA, se você quiser que as duas células sejam editáveis.

Como você descobriu, referenciar essas fórmulas umas às outras cria referências circulares. Mesmo que funcionasse, assim que você selecionasse um valor na lista suspensa, qualquer fórmula seria substituída.

Assim, o VBA é sua única opção. Se as células estiverem em duas folhas diferentes, o código para isso poderia ser assim:

No módulo de folha da folha1:

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell A1
If Not Intersect(Target, Range("A1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet2, cell b1
    ThisWorkbook.Worksheets("Sheet2").Range("B1") = Range("A1")
    Application.EnableEvents = True
End If
End Sub

No módulo de folha da folha2

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell B1 on sheet 2
If Not Intersect(Target, Range("B1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet1, cell A1
    ThisWorkbook.Worksheets("Sheet1").Range("A1") = Range("B1")
    Application.EnableEvents = True
End If
End Sub
    
por 26.01.2016 / 22:36
0

Como Teylyn declarou, não é possível da maneira exata como você gostaria que funcionasse.

Outra solução alternativa além do VBA é usar a lista suspensa de controle de formulários em vez da lista de validação de dados:

  • Acesse a guia Desenvolvedor (se não estiver visível, ative-o de acordo com as instruções aqui ) - Inserir - controles de formulário - "Caixa de combinação (controle de formulário)"
  • insira e redimensione para cobrir uma célula
  • clique com o botão direito e vá "control"
  • insira "intervalo de entrada" e "link da célula"
  • copie e cole em outro lugar, agora, como os dois têm o mesmo link de célula, se você alterar algum deles, o outro também será atualizado.
por 26.01.2016 / 23:31