![Use o menu suspenso para alterar as células próximas à lista suspensa](https://rvso.com/image/1585763/Use%20o%20menu%20suspenso%20para%20alterar%20as%20c%C3%A9lulas%20pr%C3%B3ximas%20%C3%A0%20lista%20suspensa.png)
Sou muito novo em vba e estou interessado em criar um programa que faça o seguinte. Quando um item é selecionado em um menu suspenso, ele cola determinado texto nas células próximas à lista suspensa selecionada.
Por exemplo: Minha lista suspensa contém na coluna A COMMENT MOVE
Quando seleciono "COMMENT" gostaria de preencher na coluna B "ENTER COMMENT" Quando seleciono "MOVE" gostaria de preencher na coluna B "ENTER MOVE TYPE" e na coluna C "ENTER MOVE SPEED"
Gostaria apenas que eles mudassem ao selecionar o menu suspenso, pois estou usando esses dados em células e outras células com base no item do menu suspenso selecionado.
Responder1
Se bem entendi, você poderia fazer isso com VBA ou apenas uma função. No meu exemplo, tenho uma lista em A1
e em A4
Ambos contendo "COMMENT" e "MOVE".
Em B1
eu tenho a função=IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))
E na C1
função=IF(A1="MOVE","ENTER MOVE SPEED","")
Para a lista em que A4
estou usando VBA na planilha (clique com o botão direito na planilha e selecione "mostrar código")
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range(Target.Address), Range("A4")) Is Nothing And Target.Count = 1 Then
If Target.Value2 = "MOVE" Then
Target.Offset(, 1).Value = "ENTER MOVE TYPE"
Target.Offset(, 2).Value = "ENTER MOVE SPEED"
ElseIf Target.Value2 = "COMMENT" Then
Target.Offset(, 1).Value = "ENTER COMMENT"
Target.Offset(, 2).Value = ""
Else
Target.Offset(, 1).Value = ""
Target.Offset(, 2).Value = ""
End If
End If
End Sub
Estou usando uma posição relativa do texto B
e C
com a ajuda de .Offset
que menos código precisa ser alterado dependendo da localização da lista.