![Verwenden Sie das Dropdown-Menü, um die Zellen neben der Dropdown-Liste zu ändern](https://rvso.com/image/1585763/Verwenden%20Sie%20das%20Dropdown-Men%C3%BC%2C%20um%20die%20Zellen%20neben%20der%20Dropdown-Liste%20zu%20%C3%A4ndern.png)
Ich bin ein Neuling bei VBA und möchte ein Programm erstellen, das Folgendes macht: Wenn ein Element aus einem Dropdown-Menü ausgewählt wird, wird bestimmter Text in die Zellen neben der ausgewählten Dropdown-Liste eingefügt.
Beispiel: Meine Dropdown-Liste enthält in Spalte A COMMENT MOVE
Wenn ich „KOMMENTAR“ auswähle, möchte ich in Spalte B „KOMMENTAR EINGEBEN“ eintragen. Wenn ich „BEWEGUNG“ auswähle, möchte ich in Spalte B „BEWEGUNGSART EINGEBEN“ und in Spalte C „BEWEGUNGSGESCHWINDIGKEIT EINGEBEN“ eintragen.
Ich möchte, dass diese sich nur beim Auswählen des Dropdown-Menüs ändern, da ich diese Daten in anderen Zellen verwende, je nachdem, welches Dropdown-Menüelement ausgewählt ist.
Antwort1
Wenn ich das richtig verstehe, können Sie dies entweder mit VBA oder einfach mit einer Funktion tun. In meinem Beispiel habe ich eine Liste in A1
und in A4
Both, die „COMMENT“ und „MOVE“ enthält.
In B1
habe ich die Funktion=IF(A1="MOVE","ENTER MOVE TYPE",IF(A1="COMMENT","ENTER COMMENT"," "))
Und in C1
der Funktion=IF(A1="MOVE","ENTER MOVE SPEED","")
Für die Liste A4
verwende ich VBA im Arbeitsblatt (klicken Sie mit der rechten Maustaste auf das Blatt und wählen Sie „Code anzeigen“).
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
Ich nutze eine relative Positionierung des Textes in B
und C
mit Hilfe von , .Offset
sodass je nach Listenstandort weniger Code geändert werden muss.