![Utilice el menú desplegable para cambiar las celdas junto a la lista desplegable](https://rvso.com/image/1585763/Utilice%20el%20men%C3%BA%20desplegable%20para%20cambiar%20las%20celdas%20junto%20a%20la%20lista%20desplegable.png)
Soy muy nuevo en vba y estoy interesado en crear un programa que haga lo siguiente. Cuando se selecciona un elemento de un menú desplegable, se pegará cierto texto en las celdas que están al lado de la lista desplegable seleccionada.
Por ejemplo: Mi lista desplegable contiene en la columna UN COMENTARIO MOVIMIENTO
Cuando selecciono "COMENTAR", me gustaría completar en la columna B "INGRESAR COMENTARIO" Cuando selecciono "MOVER", me gustaría completar en la columna B "INGRESAR TIPO DE MOVIMIENTO" y en la columna C "INGRESAR VELOCIDAD DE MOVIMIENTO"
Solo me gustaría que estos cambien al seleccionar el menú desplegable, ya que estoy usando estos datos en celdas y otras celdas según el elemento del menú desplegable seleccionado.
Respuesta1
Si entiendo correctamente, puedes hacer esto con VBA o simplemente con una función. En mi ejemplo, tengo una lista en A1
y en A4
Ambos que contienen "COMENTARIO" y "MOVER".
En B1
tengo la función=IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))
Y en C1
la función=IF(A1="MOVE","ENTER MOVE SPEED","")
Para ver la lista en A4
Estoy usando VBA en la hoja de trabajo (haga clic derecho en la hoja y seleccione "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
Estoy usando una posición relativa del texto B
y C
con la ayuda de, .Offset
por lo que es necesario cambiar menos código según la ubicación de la lista.