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

Removeitem bei Mehrfachauswahl

Removeitem bei Mehrfachauswahl
26.07.2002 11:37:01
Willi
Hallo alle zusammen,

ich würde mich freuen, wenn ihr mir bei folgendem Problem helft:

Habe 2 Listboxen im Userform und möchte unter Mehrfachauswahl Werte von der ListBox1 zur ListBox2 verschieben (diese sollen auch in ListBox1 gelöscht werden). Leider klappt mein Code nur bedingt, da nur einer der selektierten Werte aus ListBox1 gelöscht wird, jedoch alle selektierten Werte in ListBox2 hinzugefügt werden :( Wo liegt der Fehler?

Private Sub CommandButton1_Click()
Dim i As Integer
For i = 0 To 9
If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.List(i)
ListBox1.RemoveItem (i)

End If
Next i

End Sub

Private Sub UserForm_Initialize()
ListBox1.MultiSelect = fmMultiSelectMulti
ListBox2.MultiSelect = fmMultiSelectMulti
ListBox2.Clear

Dim quelldaten As Range, zelle As Range
Set quelldaten = Sheets("Tabelle1").Range("A1:O1")
For Each zelle In quelldaten
If zelle.Value = Empty Then Exit For

ListBox1.AddItem zelle

Next zelle
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Removeitem bei Mehrfachauswahl
26.07.2002 13:44:03
thomas
hallo willi,

versuch's mal so:

Private Sub UserForm_Initialize()
ListBox1.MultiSelect = fmMultiSelectMulti
ListBox2.MultiSelect = fmMultiSelectMulti
ListBox2.Clear

Dim quelldaten As Range, zelle As Range
Set quelldaten = Sheets("Tabelle1").Range("A1:J1")
For Each zelle In quelldaten
If zelle.Value = Empty Then Exit For

ListBox1.AddItem zelle

Next zelle
End Sub


Private Sub CommandButton1_Click()

Dim i As Integer
Dim intSel() As Integer

intCounter = 0

For i = 0 To 9

If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.List(i)
ReDim Preserve intSel(intCounter)
intSel(intCounter) = i
intCounter = intCounter + 1
End If

Next i

For i = 0 To UBound(intSel)
ListBox1.RemoveItem (i)
Next i

End Sub


Anzeige
klappt noch immer nicht
26.07.2002 14:00:43
Willi
Hallo Thomas,

Danke für die schnelle Antwort nur klappt das leider auch nicht:(

Es wird wieder nur eines gelöscht, zudem kommt bei einem weiteren Klick des CommandButtons folgende Fehler: "Eigenschaft Selected konnte nicht abgerufen werden. Ungültiges Argument"

Noch eine Idee?

Gruß, Willi

Re: klappt noch immer nicht
26.07.2002 14:39:55
thomas
so willi,

Private Sub UserForm_Initialize()
ListBox1.MultiSelect = fmMultiSelectMulti
ListBox2.MultiSelect = fmMultiSelectMulti
ListBox2.Clear

Dim quelldaten As Range, zelle As Range
Set quelldaten = Sheets("Tabelle1").Range("A1:J1")
For Each zelle In quelldaten
If zelle.Value = Empty Then Exit For

ListBox1.AddItem zelle

Next zelle
End Sub


Private Sub CommandButton1_Click()

Dim i As Byte, n As Byte, merke() As String

If ListBox1.ListCount > 0 Then

n = ListBox1.ListCount - 1
ReDim merke(n)

For i = 0 To ListBox1.ListCount - 1

If Not ListBox1.Selected(i) Then
merke(i) = ListBox1.List(i)
Else: ListBox2.AddItem ListBox1.List(i)
End If
Next i

ListBox1.Clear

For i = 0 To n

If merke(i) <> "" Then ListBox1.AddItem merke(i)

Next i

End If

End Sub

gruß thomas

Anzeige
GENIAL! VIELEN DANK!
27.07.2002 00:12:43
Willi
Recht herzlichen Dank Thomas, funktioniert einwandfrei. Danke auch für die Schnelligkeit der Lösung.

Die Idee mit dem Zwischenspeichern, Löschen und wieder Hinzufügen der Werte in ListBox1 ist cool!:)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige