
Gostaria de vincular 2 listas suspensas no Excel. A busca por soluções sempre resultou emem cascatalistas suspensas. O que eu quero são duas listas suspensas com as mesmas opções. Quando você muda um, o outro também muda.
Tentei simplesmente fazer referência um ao outro, mas é claro que recebo um erro de referência circular. Eu adoraria fazer isso sem VBA, se possível, pois terei muitos deles, mas se não for possível, eu entendo.
Responder1
O que você descreve não pode ser feito sem o VBA, se você deseja que ambas as células sejam editáveis.
Como você descobriu, referenciar essas fórmulas entre si cria referências circulares. Mesmo que funcionasse, assim que você selecionasse um valor no menu suspenso, qualquer fórmula seria substituída.
Portanto, o VBA é sua única opção. Se as células estiverem em duas planilhas diferentes, o código para isso poderia ser assim:
No Módulo 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 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
Responder2
Como Teylyn afirmou, não é possível exatamente da maneira que você gostaria que funcionasse.
Outra solução alternativa além do VBA é usar a lista suspensa de controle de formulário em vez daquela na validação de dados:
- Vá para a guia Desenvolvedor (se não estiver visível, ative-a de acordo com as instruçõesaqui) - Inserir - controles de formulário - "Caixa de combinação (controle de formulário)"
- insira-o e redimensione para cobrir uma célula
- clique com o botão direito nele e vá em "controle"
- insira "intervalo de entrada" e "link de célula"
- copie e cole em outro lugar, agora, como ambos possuem o mesmo link de célula, se você alterar algum deles, o outro será atualizado também.