Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
160to164
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
160to164
160to164
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listfeld in UserForm

Listfeld in UserForm
26.09.2002 10:00:38
Andreas
Hallo, ich habe folgenden Code in einer UserForm:

Private Sub UserForm_Initialize()
ListBox1.RowSource = "Tabelle1!E1:E8"
End Sub

Was muß ich machen, das ich maximal nur 3 Sachen in der ListBox anwählen kann?

Mir schwebt da so der Gedanke durch den Kopf, das wenn man eine 4. Option anwählt, die erste, die man gewählt hat demakiert wird.
Oder das man keine 4. Option anwählen kann.

Wäre um Hilfe sehr dankbar.

Gruß
Andi

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Listfeld in UserForm
26.09.2002 12:19:02
Chris
Neues Klassenmodul erzeugen mit Name 'caControls'. In dieses
den folgenden Code eingeben

Public WithEvents Listbox_begrenzt_Auswahl As MSForms.ListBox

Dim s As Collection
Dim evnt As Boolean
Public maxSelected As Long

Private Sub Class_Initialize()
Set s = New Collection
evnt = True
maxSelected = 3
End Sub

Private Sub Class_Terminate()
Set s = Nothing
End Sub

Private Sub Listbox_begrenzt_Auswahl_Change()
On Error GoTo err
If Not evnt Then
evnt = True
Exit Sub
End If
With Listbox_begrenzt_Auswahl
If .Selected(.ListIndex) Then
s.Add Item:=.ListIndex, key:=("L_" & .ListIndex)
Else
s.Remove ("L_" & .ListIndex)
End If
If (s.Count > maxSelected) And (maxSelected > 0) Then
evnt = False
.Selected(s.Item(1)) = False
s.Remove (1)
End If
End With
Exit Sub
err:
Resume Next
End Sub

Danach im Userform eine Listbox erstellen und folgenden Code in das Userform eingeben.

Set mylist.Listbox_begrenzt_Auswahl = Me.ListBox1
mylist.maxSelected = 2

' Beispiellistbox füllen
ListBox1.AddItem ("1 - Item1")
ListBox1.AddItem ("2 - Item2")
ListBox1.AddItem ("3 - Item3")
ListBox1.AddItem ("4 - Item4")
ListBox1.AddItem ("5 - Item5")
ListBox1.AddItem ("6 - Item6")
ListBox1.AddItem ("7 - Item7")
ListBox1.AddItem ("8 - Item8")
ListBox1.AddItem ("9 - Item9")

Anzeige
Re: Listfeld in UserForm
26.09.2002 15:07:50
Andreas
Hallo,

Ich danke für die schnelle hilfe, aber ich komme immernoch nicht klar.

also, im code vom Tabellenblatt steht:
Sub cmdMehrfachauswahl_Click()
frmMehrfachAuswahl.Show
End Sub
Da ich im Moment die UserForm über ein Button ansteuere.

In meiner UserForm steht:
Option Explicit

Private Sub cmdAuswählen_Click()
Dim i%
Dim Zeile As Integer
Zeile = 0
For i = 0 To ListBox1.ListCount - 1
Zeile = Zeile + 1
If ListBox1.Selected(i) = True Then
Cells(Zeile, 7) = i + 1
End If
Next i
cmdAbbrechen_Click
End Sub
Private Sub cmdAbbrechen_Click()
Unload Me
End Sub
Private Sub ListBox1_Click()
Set mylist.Listbox_begrenzt_Auswahl = Me.ListBox1
mylist.maxSelected = 3

' Beispiellistbox füllen
ListBox1.AddItem ("1 - Item1")
ListBox1.AddItem ("2 - Item2")
ListBox1.AddItem ("3 - Item3")
ListBox1.AddItem ("4 - Item4")
ListBox1.AddItem ("5 - Item5")
ListBox1.AddItem ("6 - Item6")
ListBox1.AddItem ("7 - Item7")
ListBox1.AddItem ("8 - Item8")
ListBox1.AddItem ("9 - Item9")
End Sub
Die Userform enthält eine Listbox, ein Button zum einfügen der Ergebnisse in das Excel-Blatt und ein Abbrechen-Button.
in dem Klassenmodul caControls steht das oben beschriebene.

Doch in der Listbox erscheint gar kein Wert, den ich auswählen könnte.

Habe ich etwas vergessen? Ich kenne mich nicht so gut aus im VBA

Viele Grüße
Andi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige