Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
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
markierte Einträge in einer ListBox
Jonathan
Hey,
sorry, für die vielen Fragen mal wieder! ;-(
Mir ist mal wieder etwas aufgefallen, was ich bisher einfach umgangen habe, in meinem jetzigen Projekt aber nicht kann...
Wenn ich mit Me.ListBox.List auf den ausgewählten Eintrag zugreife, muss dieser natürlich markiert sein. Allerdings gibt es scheinbar drei Varianten: nicht markiert, markiert aber nicht aktiv, markiert und aktiv. Im letzteren Fall ist um die blaue Markierung noch ein Rahmen.
Wenn ein Eintrag blau markiert aber nicht mit einem Rahmen versehen ist, ist der Wert mit .List nicht zu erhalten - dies verwirrt User natürlich immens, da blau meistens bedeutet: ausgewählt.
Gibt es eine Möglichkeit, auf die markierten aber nicht aktivierten Einträge zuzugreifen?
VG

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: markierte Einträge in einer ListBox
07.09.2011 02:49:08
fcs
Hallo Jonathan,
die Listboxen gibt es in 2 Varianten, wenn es um ausgewählte/aktive Einträge geht.
A) Multiselect = 0 (fmMultiSelectSingle)
B) MultiSelect = 1 (fmMultiSelectMulti) oder = 2 (fmMultiSelectExtended)
Variante A
hat: nichts gewählt (Listindex=-1) oder 1 Eintrag gewählt/farbig (Listindex >= 0)
Variante B
hat: nichts gewählt (Listindex=0), ein oder mehre Einträge sind gewählt (farbig, Selected-Eigenschaft dieser Einträge = True), der letzte gewählte (aktive) Eintrag hat einen Rahmen und kann farbig sein oder auch nicht. Der Rahmen spielt für die Auswertung keine Rolle. Der aktive Eintrag kann über den Listindex abgefragt werden.
Du solltest für die Listboxen die Eigenschaft "Liststyle" auf 1 = fmListStyleOption ändern.
Dann werden vor den Einträgen noch Bullets (Variante A) oder Checkboxen (Variante B) angezeigt.
Gruß
Franz
Anzeige
AW: markierte Einträge in einer ListBox
07.09.2011 14:24:33
Jonathan
Vielen Dank für die ausführliche Erklärung, leider kann ich damit mein Problem nicht beheben.
Zur Vorgehensweise:
Über ein Textfeld suche nach bestimmten Werten innerhalb eines Sheets, diese werden in einer ListBox aufgeführt. Markiere ich einen Eintrag in der Listbox und klicke dann auf einen Button, werden die Werte des ausgewählten Eintrages in verschiedene Textfelder - welche vorher mit durch die Auswahl eines Optionsfeldes selektiert wurden - geschrieben. Danach wird automatisch ein anderes Optionsfeld ausgewählt. Dies klappt auch super; aber:
Markiere ich einen Listeintrag und klicke auf den Button, ist der Eintrag zwar noch blau hinterlegt, allerdings nicht mehr ausgewählt. Klicke ich dann sofort erneut auf den Button (die Daten sollten dann in weitere Textfelder geschrieben werden), erhalte ich die Fehlermeldung:
"Eigenschaft List konnte nicht abgerufen werden. Index des Eigenschaftenfeldes ungültig."
Ich müsste vorher den Eintrag der Listbox erneut anwählen - dann funktioniert es.
Ich hoffe, Ihr könnt mir folgen?! ;-)
Hier der Code für das Übernehmen der Daten aus der Listbox:

Private Sub find_eintragen()
Dim booOptionClicked As Boolean
Dim opt_name As String
Dim opt_nr As Integer
For i = 1 To 20
If Me("opt" & i).Value = True Then
booOptionClicked = True
opt_name = Me("opt" & i).Caption
opt_nr = i
End If
Next i
If Not booOptionClicked Then
MsgBox "Bitte wählen Sie einen Datensatz", _
48, "   Hinweis für " & Application.UserName
Me.lbox_find.SetFocus
Exit Sub
End If
uf_haupt("com_buchungsart" & opt_nr).Value = Me.lbox_find.List(Me.lbox_find.ListIndex, 0)
uf_haupt("com_ok" & opt_nr).Value = Me.lbox_find.List(Me.lbox_find.ListIndex, 1)
uf_haupt("com_uk" & opt_nr).Value = Me.lbox_find.List(Me.lbox_find.ListIndex, 2)
uf_haupt("com_uk2" & opt_nr).Value = Me.lbox_find.List(Me.lbox_find.ListIndex, 3)
uf_haupt("txt_kommentar" & opt_nr).Value = Me.lbox_find.List(Me.lbox_find.ListIndex, 4)
uf_haupt("txt_betrag" & opt_nr).SetFocus
uf_haupt("opt" & opt_nr + 1).Value = True
End Sub

Anzeige
AW: markierte Einträge in einer ListBox
07.09.2011 18:07:11
Jonathan
Wenn ich vorher separat SetFocus auf die ListBox setze, klappt es! ;-)

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige