Ich habe eine Userform bei der am Schluss eine Bestimmte Zelle aus der Tabelle angezeigt werden soll wenn bestimmte "If" Bedingungen erfüllt sind. Bis jetzt verwende ich 2 Listboxen und 3 Option Buttons und 1 CommandButton sowie 2 Labels. Eventuell ist das Anzeigen in einem Label nicht optimal, daher wäre ich zusätzlich auf eure Vorschläge angewiesen. Habe das Label gewählt, da ich etwas "nicht anklickbares" oder "reinschreibbares" will, es soll wirklich nur die Information aus der entsprechenden Zelle aus der Tabelle anzeigen.
Beim Öffnen der Userform wird zuerst die erste ListBox mit Informationen aus der Tabelle gefü _
llt. Der Code dazu:
Private Sub UserForm_Initialize()
Dim arrFill As Variant
arrFill = Sheets("Tabelle1").[A4:A12]
ListBox1.List() = arrFill
End Sub
Das funktioniert soweit.
Wenn nun in der ersten ListBox ein bestimmtes Item angeklickt wird, soll die zweite ListBox wiederum mit Bestimmten Informationen aus der Tabelle gefüllt werden. Wenn nun in der ersten ListBox vom Einen zum Anderen Item geklickt wird, soll auch die zweite ListBox entsprechend aktualisiert werden.
Den Code dazu für die Abfrage, ob der Wert vom ersten Feld (A4) = Test ist:
Private Sub ListBox1_Click()
If ListBox1.Value = "TEST" Then
'Liste leeren
ListBox2.Clear
'Liste füllen
Dim arrFilltest As Variant
arrFilltest = Sheets("Tabelle1").[D4:D10]
ListBox2.List() = arrFilltest
End If
Das funktioniert soweit auch und die zweite ListBox wird mit den Werten von D4 bis D10 gefüllt.
Die Items von der zweiten ListBox gibt es in 3 Ausführungen. Für jede Ausführung ein
OptionButton. Falls ein Button angeklickt wird, werden die anderen Beiden auf "False" gesetzt und nur der Ausgewählte wird "True". Falls jetzt das Item "Test" in der zweiten ListBox angeklickt ist und der OptionButten6 auch angeklickt ist, dann soll die Caption der beiden Labels entsprechend der Zelle aus der Tabelle sein.
Den Code dazu:
Private Sub OptionButton6_Click()
UserForm1.OptionButton7.Value = False
UserForm1.OptionButton8.Value = False
UserForm1.OptionButton6.Value = True
If ListBox2.Value = "Test" And UserForm1.OptionButton6.Value = True Then
Label4.Caption = Worksheets("Tabelle1").Range("P4")
Label6.Caption = Worksheets("Tabelle1").Range("S4")
End If
End Sub
Das funktioniert soweit auch, jedoch:
Aktuell muss die Reihenfolge von ListBox1 + ListBox2 + Button eingehalten werden, damit der Wert aus der Tabelle angezeigt wird. Wie schaffe ich es, damit z.b auch die Kombination von ListBox1 + Button + ListBox2 geht?
Der CommandButton hat die Funktion, dass alles zurück gesetzt werden soll. Aktuell mit dem Code: _
Private Sub CommandButton1_Click()
ListBox2.Clear
ListBox1.ListIndex = -1
UserForm1.OptionButton6.Value = False
UserForm1.OptionButton7.Value = False
UserForm1.OptionButton8.Value = False
End Sub
Nun möchte ich mit diesem CommandButton auch die Label.Caption wieder entfernen. Da ja sowieso die OptionButtons auf "False" gesetzt werden ist ja die Zuordnung nicht mehr aktiv. Die Zuordnung auf eine leere Zeile nützte nichts. Wie kann ich das lösen, dass dort nichts mehr angezeigt wird?
Ähnlich zum CommandButton soll die Label.Caption auch zurück gesetzt werden, wenn in der ListBox2 ein anderes Item anklicke wird. Zudem auch beim Klick in der ersten ListBox auf ein anderes Item.
Vielen Dank für eure Unterstützung.
Gruss :-)