Listbox-Auswahl erneut anklicken
#1
Hallo miteinander,

ich bräuchte etwas Hilfe.

in einer UF besteht folgender Ablauf:

  1. Listbox1 -> Klick auf Eintrag = Listbox2 öffnet sich
  2. Klickt in Listbox2 = Listbox3 öffnet sich
  3. nach der letzten Listbox erscheint eine Abfrage ob man in Listbox1 nochmal was anderes wählen möchte.
  4. ja = alle Listbox bis auf Listbox1 werden ausgeblendet (L.Visible = false)
  5. klick in Listbox1 = Listbox2 öffnet sich
  6. nun ist der immernoch angeklickte Wert zu sehen - das soll auch so sein, damit man erkennt was gerade ausgewählt wurde.
Wenn man diesen noch angeklickten Wert wieder übernehmen wollte, dann müsste man ihn anklicken können.
Kann man auch, aber es passiert nichts. 

Wie kann ich erreichen, dass mit klick auf den schon markierten Wert das Makro in der Listbox erneut abläuft?


Viele Grüße
Klaus
Top
#2
Hallo,

warum Listenfelder, das kann man doch mit Kombinationsfeldern lösen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo Klaus - Dieter,

weiß ich nicht... weil ich halt ne Liste darstellen wollte :D

Hab ich noch nicht probiert wie sich ein Kombinationsfeld verhält...
Top
#4
Hallo,

lade doch mal eine Beispieldatei hoch.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#5
ok... das kann ich machen. die muss ich aber erst stricken. das muss ich dann auf morgen verschieben. so fix bin ich dabei nicht.  :22:
Vielen Dank für deine Hilfe schon mal.
Top
#6
Hi Klaus,

Du könntest z.B. zusätzlich das Mouse-Down-Ereignis auswerten.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
Hallo miteinander,

habe nun mal eine Testmappe gestrickt.
Hoffe das geht so.

Nach klick auf "ja" in UF2 sind die Listboxen noch offen und markiert. Will man dieselbe Auswahl nochmal übernehmen, dann passiert halt nix.

@schauan, ok... aber wie sieht sowas dann aus? *grübel

Liebe Grüße 
Klaus


Angehängte Dateien
.xlsm   listbox testmappe.xlsm (Größe: 19,98 KB / Downloads: 11)
Top
#8
Hallöchen,

ich habe hier mal zum Vergleich den Click - und Down-Code. Ich hab da einfach den Click-Code ins Down kopiert und zusätzlich noch eine Msgbox am Anfang programmiert. Damit siehst Du die Reihenfolge der Ausführung und was zum Zeitpunkt der Ausführung die Value-Eigenschaft ist. Wenn Du das probierst und durchdenkst, könnte bei einer Lösungsansatz z.B. das Visible im Down ausreichen, das Value aber in beide Codes. Bei der ersten Ausführung hat das Down keinen Value, bei der zweiten Ausführung auf derselben Zeile gibt es kein Click.
Du musst im Anschluss eventuell noch die gesetzten Zellwerte der anderen bzw. der dann wieder ausgeblendeten Listboxen zurücksetzen.

Code:
Private Sub ListBox1_Click()
MsgBox 1 & vbTab & ListBox1.Value
ListBox2.Visible = True
ListBox3.Visible = False
ListBox4.Visible = False
[A12] = ListBox1.Value
End Sub

Code:
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MsgBox 2 & vbTab & ListBox1.Value
ListBox2.Visible = True
ListBox3.Visible = False
ListBox4.Visible = False
[A12] = ListBox1.Value
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Hallo Klaus,

ersetze mal Deinen aktuellen Code im Userform1 durch diesen:
Private Sub ListBox1_Click()
ListBox2.Visible = True
ListBox3.Visible = False
ListBox4.Visible = False
[A12] = ListBox1.Value
End Sub
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ListBox2.Visible = True
ListBox3.Visible = False
ListBox4.Visible = False
[A12] = ListBox1.Value
End Sub

Private Sub ListBox2_Click()
ListBox2.Visible = True
ListBox3.Visible = True
ListBox4.Visible = False
[B12] = ListBox2.Value
End Sub
Private Sub ListBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ListBox2.Visible = True
ListBox3.Visible = True
ListBox4.Visible = False
[B12] = ListBox2.Value
End Sub

Private Sub ListBox3_Click()
ListBox2.Visible = True
ListBox3.Visible = True
ListBox4.Visible = True
[C12] = ListBox3.Value
End Sub
Private Sub ListBox3_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ListBox2.Visible = True
ListBox3.Visible = True
ListBox4.Visible = True
[C12] = ListBox3.Value
End Sub

Private Sub ListBox4_Click()
ListBox2.Visible = True
ListBox3.Visible = True
ListBox4.Visible = True
[d12] = ListBox4.Value
UserForm2.Show
End Sub
Private Sub ListBox4_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ListBox2.Visible = True
ListBox3.Visible = True
ListBox4.Visible = True
[d12] = ListBox4.Value
UserForm2.Show
End Sub

Private Sub UserForm_Activate()
ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = False
End Sub
Statt MouseDown sind in allen Listboxen MouseUp-Ereignisse drin. Das Initialize- wurde durch das Activate-Ereignis ersetzt.

Gruß Uwe
Top
#10
Oha... Vielen Dank an Euch. 
Verflixt ich komme erst übermorgen dazu das zu testen ?
Ich geb aber auf jeden Fall noch Rückmeldung ?

Liebe Grüße, und gute Nacht ?
Klaus

*grummel.... Die Fragezeichen sind nicht von mir...
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste