Nach Auswahl Userform erscheinen lassen
Hi Leute,
ich habe in einem Tabellenblatt mehrere Dropdown- Listen mit denen ich arbeite.
In Spalte G befindet sich eine Dropdown- Liste mit den Auswahlmöglichkeiten "Initativ" "auf Anzeige" u.s.w.
Nun möchte ich, das wenn ich in Saplte G "auf Anzeige" wähle, eine Userform in der aktiven Zeile erscheint in der ich weitere Daten eintragen kann.
Diese Daten die ich dann in der Userform eintrage, sollen dann in einem anderenTabellenblatt auf der Selben Zeile eingetragen werden. z,B, ich wähle in Tabelle1, Zelle "G8" "auf Anzeige" aus, dann soll die Userform in der aktiven Zeile erscheinen (also Zeile 8), gebe die Daten in der Userform ein und diese tragen sich dann in Tabelle2 in der Zelle "A8" ein.
Jetzt habe ich viel geschrieben. Ich hoffe es ist verständlich.
Gruß
Antwort schreiben
Antwort 1 von Beverly vom 15.04.2021, 18:55 Options
Hi,
erstelle ein UserForm mit einer TextBox und einer Schalftläche. Der Schalter erhält einen Code dieser Form (der Prozedurname hängt davon ab wie deine Schaltfläche heißt, bei mir ist es CommandButton1):
Private Sub CommandButton1_Click()
Worksheets("Tabelle2").Cells(loZeile, 1) = TextBox1
Unload Me
End Sub
Ins Codemodul des Tabellenblattes mit den DropDown Listenfeldern kopierst du diesen Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Target.Count = 1 Then
loZeile = Target.Row
UserForm1.Show
End If
End If
End Sub
und in einem allgemeinen Modul deklarierst du die Variable loZeile als Public.
Bis später,
Karin
Antwort 2 von afetinci vom 16.04.2021, 09:50 Options
HI Karin,
danke für deine Antwort.
Das mit dem öffnen klappt, jedoch sobald ich auf die Zelle klicke. Die Userform soll sich aber nur öffnen wenn "auf Anzeige" ausgewählt wird. Ist da auch was machbar???
Gruß
afetinci
Antwort 3 von Beverly vom 16.04.2021, 10:27 OptionsLösung
Hi,
mit dem von mir geposteten Code wird das UserForm aufgerufen wenn ein
Eintrag (bzw. andere Auswahl mittels Zelldropdown) in der Zelle erfolgt, nicht wenn die Zelle
angewählt wird. Offensichtlich hast du den Code nicht komplett kopiert sondern ihn anstatt in das Worksheet_
Change (so wie in meinem Beispiel) in das Workshee_
SelectionCange Ereignis eingefügt.
Wenn das UserForm nur bei einer bestimmten Auswahl gestartet werden soll dann muss der Code so aussehen:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Target.Count = 1 Then
If Target = "auf Anzeige" Then
loZeile = Target.Row
UserForm1.Show
End If
End If
End If
End Sub
Bis später,
Karin
Antwort 4 von afetinci vom 16.04.2021, 12:17 Options
Du bist super!!
klappt bestens. Bin ein Anfänger in VBA. VIELEN DANK!!!
Gruß