Discussion:
Listbox.Multiselect per VBA setzen geht nicht
(zu alt für eine Antwort)
Roland Müller
2003-12-24 07:22:06 UTC
Permalink
Hallo,

kann ich nicht für eine Listbox die Eigenschaft Multiselect per VBA angeben?
Ich versuche dies in Form_load.
Unter bestimmten Openargs soll Multiselect möglich sein, manchmal jedoch
nicht.
Ich bekomme die Fehlermeldung

Laufzeitfehler 2448
Sie können diesem Objekt keinen Wert zuweisen.

In der Hilfe steht auch nichts von Readonly und es steht da sogar:
"Sie können die Eigenschaft MultiSelect im Eigenschaftenfenster des
Listenfelds, in einem Makro oder in Visual Basic einstellen.
Diese Eigenschaft kann nur in der Formularentwurfsansicht eingestellt
werden.
"
Was nun?
--
Danke für jede Hilfe,
Roland Müller
Susanne Wenzel
2003-12-24 10:12:25 UTC
Permalink
Hallo Roland,
Post by Roland Müller
kann ich nicht für eine Listbox die Eigenschaft Multiselect per VBA
angeben? Ich versuche dies in Form_load.
Unter bestimmten Openargs soll Multiselect möglich sein, manchmal
jedoch nicht.
Ich bekomme die Fehlermeldung
Laufzeitfehler 2448
Sie können diesem Objekt keinen Wert zuweisen.
"Sie können die Eigenschaft MultiSelect im Eigenschaftenfenster des
Listenfelds, in einem Makro oder in Visual Basic einstellen.
Diese Eigenschaft kann nur in der Formularentwurfsansicht eingestellt
werden."
Was nun?
ich befürchte, Du musst den letzten Satz aus Deinem Zitat der OH ernst
nehmen ;-).

Ich habe ein bisschen herumprobiert, mit der Entwurfsansicht vorweg ging es
dann, ich habe es allerdings nicht geschafft, das im Form_Load-Ereignis
unterzubringen (aber für solche Kleinigkeiten gibt es ja gerade in dieser NG
unzählige Könner).

Meine holprige Art war, ein anderes Formular mit einem Button
davorzuschalten. Beim Klick auf diesen Button wird das Formular mit der
Listbox im Entwurfsmodus geöffnet, die Mehrfachauswahl umgestellt und dann
angezeigt.

Vielleicht hilft es Dir ja weiter

Frohe Weihnachten wünscht aus dem hohen Norden Deutschlands
Susanne
Roland Müller
2003-12-24 10:55:12 UTC
Permalink
Danke für die Antwort, werde nach Weihnachten mal versuchen, da
rumzutricksen.
Evtl. klone ich die Listbox und zeige die an, wenn Mehrfachauswahl möglich
sein soll, wenn nicht die ursprüngliche.
Post by Susanne Wenzel
Hallo Roland,
Post by Roland Müller
kann ich nicht für eine Listbox die Eigenschaft Multiselect per VBA
angeben? Ich versuche dies in Form_load.
Unter bestimmten Openargs soll Multiselect möglich sein, manchmal
jedoch nicht.
Ich bekomme die Fehlermeldung
Laufzeitfehler 2448
Sie können diesem Objekt keinen Wert zuweisen.
"Sie können die Eigenschaft MultiSelect im Eigenschaftenfenster des
Listenfelds, in einem Makro oder in Visual Basic einstellen.
Diese Eigenschaft kann nur in der Formularentwurfsansicht eingestellt
werden."
Was nun?
ich befürchte, Du musst den letzten Satz aus Deinem Zitat der OH ernst
nehmen ;-).
Ich habe ein bisschen herumprobiert, mit der Entwurfsansicht vorweg ging es
dann, ich habe es allerdings nicht geschafft, das im Form_Load-Ereignis
unterzubringen (aber für solche Kleinigkeiten gibt es ja gerade in dieser NG
unzählige Könner).
Meine holprige Art war, ein anderes Formular mit einem Button
davorzuschalten. Beim Klick auf diesen Button wird das Formular mit der
Listbox im Entwurfsmodus geöffnet, die Mehrfachauswahl umgestellt und dann
angezeigt.
Vielleicht hilft es Dir ja weiter
Frohe Weihnachten wünscht aus dem hohen Norden Deutschlands
Susanne
Matthias Klaey
2003-12-24 10:25:37 UTC
Permalink
Post by Roland Müller
Hallo,
kann ich nicht für eine Listbox die Eigenschaft Multiselect per VBA angeben?
Ich versuche dies in Form_load.
Unter bestimmten Openargs soll Multiselect möglich sein, manchmal jedoch
nicht.
Ich bekomme die Fehlermeldung
Laufzeitfehler 2448
Sie können diesem Objekt keinen Wert zuweisen.
"Sie können die Eigenschaft MultiSelect im Eigenschaftenfenster des
Listenfelds, in einem Makro oder in Visual Basic einstellen.
Diese Eigenschaft kann nur in der Formularentwurfsansicht eingestellt
werden.
"
Was nun?
Probiere es im Form_Open Ereignis.

HTH
Matthias Kläy
--
www.kcc.ch
Roland Müller
2003-12-24 10:52:15 UTC
Permalink
Post by Matthias Klaey
Probiere es im Form_Open Ereignis.
Geht leider auch hier nicht.
Matthias Klaey
2003-12-24 13:21:46 UTC
Permalink
Post by Roland Müller
Post by Matthias Klaey
Probiere es im Form_Open Ereignis.
Geht leider auch hier nicht.
Ja, das geht tatsächlich nicht, entgegen der Dokumentation.
Wenn die Anzahl Zeilen nicht zu gross ist, bietet das Folgende eine
Umgehungsmöglichkeit (die Listbox lstTest im Entwurf auf "Erweitert"
eingestellt):

Private Sub lstTest_AfterUpdate()

Dim lngItem As Long
Dim lngHead As Long

If Nz(Me.OpenArgs, vbNullString) = "Einfach" Then
With Me.lstTest
If .ColumnHeads = False Then
lngHead = 0
Else
lngHead = 1
End If
For lngItem = 0 To .ListCount - 1
If .ListIndex + lngHead <> lngItem Then
.Selected(lngItem) = False
End If
Next
End With
End If

End Sub

Eine andere Möglichkeit ist, zwei Listboxen übereinander zu legen und
je nachdem die eine oder die andere anzuzeigen.

Gruss, Matthias Kläy
--
www.kcc.ch
Loading...