Anzeige
Archiv - Navigation
1100to1104
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

Listbox: wie frage ich ab, ob Element selektiert?

Listbox: wie frage ich ab, ob Element selektiert?
werner.prothmann@wincor-nixdorf.com
Ich habe eine Listbox mit Mehrfachauswahl und möchte beim Click-Ereignis abfragen,
ob das Element selektiert oder deselektiert wurde. Wie muß diese Abfrage aussehen?
Gruß Werner.
mit einer Schleife
08.09.2009 08:16:21
Tino
Hallo,
Beispiel:
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then MsgBox ListBox1.List(i, 0)
Next i
Gruß Tino
AW: mit einer Schleife
08.09.2009 08:42:35
WernerP
Das ist nicht was ich brauche.
Ich möchte nach dem Anklicken eines Elements der Listbox nur bei diesem
Element abfragen ob eine Selektion oder eine Deselektion vorliegt.
Etwa so

ListBox1.Selected(i)
nur was muß ich für das i eintragen?

ListBox1.Selected(ListBox1.ListIndex)
bringt Laufzeitfehler: "Eigenschaft Selected konnte nicht abgerufen werden. Ungültiges Argument"
Gruß Werner.
Anzeige
oder eine bestimmte Zeile abfragen...
08.09.2009 09:21:58
Tino
Hallo,
habe mir deinen zweiten Beitrag nochmal durchgelesen.
Für i gibst Du den Index der Zeile ein die Du abfragen möchtest.
Der Index ist eins kleiner wie die Zeile, also Zeile 1 hat den Index 0 und Zeile 2 den Index 1 usw...
Wenn Du nun eine bestimmte Zeile abfragen möchtest, z. Bsp. die Zeile 10 gibst Du für i die 9 an.
z. Bsp. für die Zeile 10

Private Sub ListBox1_Change()
If ListBox1.Selected(9) Then
MsgBox "Zeile 10 ist aktiviert"
Else
MsgBox "Zeile 10 ist nicht aktiviert"
End If
End Sub
Gibt es die Zeile mit dem Index 9 nicht kommt es zu einem Fehler,
dies kannst Du aber auch abfangen wenn Du zuvor überprüfst ob es so viele gibt.
Private Sub ListBox1_Change()
If ListBox1.ListCount > 9 Then
If ListBox1.Selected(9) Then
MsgBox "Zeile 10 ist aktiviert"
Else
MsgBox "Zeile 10 ist nicht aktiviert"
End If
End If
End Sub

Gruß Tino
Anzeige
AW: Listbox: wie frage ich ab, ob Element selektiert?
08.09.2009 08:42:14
xr8k2
Hallo Werner,
ich glaub bei der Einstellung Multiselect in einer Listbox wird kein Click-Ereignis ausgelöst.
Gruß,
xr8k2
AW: Listbox: wie frage ich ab, ob Element selektiert?
08.09.2009 08:44:39
WernerP
Das wird bei mir ausgelöst.
Gruß Werner.
AW: Listbox: wie frage ich ab, ob Element selektiert?
08.09.2009 08:52:11
xr8k2
Hallo Werner,
ok ... nein nicht ok ... hab´s getestet im Excel2003 Clickereignis wird bei mir nicht ausgelöst, nur Doppelklick geht.
Aber egal ... wenns bei dir funktioniert, dann müsste das hier bei dir aber auch funktionieren:
Private Sub ListBox1_Click()
MsgBox ListBox1.Selected(ListBox1.ListIndex)
End Sub
Gruß,
xr8k2
nicht Click versuche es mit Change oT.
08.09.2009 08:58:24
Tino
Danke, es läuft
08.09.2009 09:42:46
WernerP
Es war mein Fehler. Ich hatte es gestern mit dem Click-Ereignis probiert und das funktionierte nicht.
Dann hatte ich auf Change umgestellt und das lief. Heute morgen dachte ich, dass ich immer noch mit
Click arbeite.
Das Problem trat dadurch zustande, dass ich beim Userform-Init die Listbox füllte und dadurch ein
Change-Ereignis auslöste, welches wiederum den Laufzeitfehler verursachte.
Nochmals vielen Dank für Eure Bemühungen.
Gruß, Werner.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige