Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Userform Daten aus Tabelle anzeigen

Excel Userform Daten aus Tabelle anzeigen
19.12.2018 20:34:35
SF
Hallo zusammen
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 :-)

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Userform Daten aus Tabelle anzeigen
20.12.2018 07:26:49
Bernd
Servus SF,
setze die jeweilige Caption doch einfach auch auf "".

Private Sub CommandButton1_Click()
ListBox2.Clear
ListBox1.ListIndex = -1
UserForm1.OptionButton6.Value = False
UserForm1.OptionButton7.Value = False
UserForm1.OptionButton8.Value = False
Label1.Caption = ""
Label2.Caption = ""
End Sub
Grüße, Bernd
AW: Excel Userform Daten aus Tabelle anzeigen
20.12.2018 18:37:10
SF
Hallo Bernd
Vielen Dank für deine schnelle Antwort.
Das mit dem .Caption = " " funktioniert sehr gut und wurde auch gleich eingebaut.
Bezüglich der Ausgabe des Wertes im Label.
Momentan muss der Benutzer zuerst auf das Item in der ListBox2 klicken und danach auf einen der OptionButtons damit ein Wert im Label erscheint. Kann ich die Abfrage auch "eleganter" lösen, damit eigentlich egal ist, ob zuerst auf den OptionButton oder auf das Item in der ListBox2 geklickt wird?
Aktuell ist der Code für die Abfrage wie folgt:
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
Habe mal einen Versuch gemacht in dem ich während der IF Abfrage noch ein Or eingebaut habe und dann die Bedingungen getauscht habe. Jedoch funktionierte das nicht.
If ListBox2.Value = "test" And UserForm1.OptionButton6.Value = True
Or UserForm1.OptionButton6.Value And ListBox2.Value = "test" Then

Gruss, SF
Anzeige
AW: Excel Userform Daten aus Tabelle anzeigen
21.12.2018 09:00:31
Bernd
Servus SF,
die Reihenfolge der Kriterien der IF-Abfrage ist egal. Im Endeffekt müssen beide Kriterien erfüllt sein, damit in den IF-Zweig eingebogen wird.
Wenn nur ein Kriterium erfüllt sein muss, dann mach aus dem "AND" ein "OR".

Private Sub OptionButton6_Click()
UserForm1.OptionButton7.Value = False
UserForm1.OptionButton8.Value = False
UserForm1.OptionButton6.Value = True
If ListBox2.Value = "Test" OR UserForm1.OptionButton6.Value = True Then
Label4.Caption = Worksheets("Tabelle1").Range("P4")
Label6.Caption = Worksheets("Tabelle1").Range("S4")
End If
End Sub
Für weitere Hilfestellung wäre es nützlich die Datei zu sehen...
Grüße, Bernd
Anzeige
AW: Excel Userform Daten aus Tabelle anzeigen
21.12.2018 12:59:27
SF
Hallo Bernd
Danke für den Input bezüglich File-Upload, hätte ich eigentlich auch selber drauf kommen sollen.
https://www.herber.de/bbs/user/126257.xlsm
Ich glaube, dass ich den Fehler gefunden habe, jedoch nicht weiss, wie ich das beheben kann.
Die If Funktion wird nur bei einem Klick auf den OptionButton ausgeführt. Das heisst, mein Problem ist demnach nicht die Reihenfolge ansich, sondern, dass die Ausgabe auch dann ausgeführt wird, wenn als letztes in die ListBox2 geklickt wurde. Entweder müsste die If Bedingung auch in die ListBox2 geschrieben werden oder die Abfrage nach der Bedingung läuft im Hintergrund und erkennt automatisch ob die Bedingung erfüllt wurde.
Gruss
SF
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige