Listbox - Auswahl mit Suchkriterium
23.09.2003 16:37:23
AxelW
ich hatte gestern von Chris einen Super Tipp erhalten, wie man ein Listenfeld mit einem Suchkriterium füllt. Funktioniert wie gesagt bestens, A B E R ...
schon komme ich wieder nicht weiter. Nachdem alle Zeilen, die in der Spalte A ein "x" stehen haben, in das Listenfeld eingelesen sind, möchte ich nun rückwärts nach einer Auswahl im Listenfeld, das betreffende "x" in der Zeile wieder löschen, zum Beispiel durch ein Extra Commandbutton "Auswahl entfernen". Es gelingt mir leider nicht den Listbox1.ListIndex() der entsprechenden Zeilennummer zuzuweisen.
Vielleicht kann mir jemand weiterhelfen.
Vielen Dank schon mal im Voraus.
Gruß Axel
Hier noch einmal der Code von gestern.
Meine Anfrage lautete:
"Hallo Zusammen,
Ich habe einen Tabellenbereich von "A1:F200", gefüllt mit Werten.
In der Spalte "A" werden die Zellen einfach mit einem "x" versehen, wenn die entsprechenden Zeilen verwendet werden sollen.
Nun möchte ich in meiner Userform ("Userform1") ein Listenfeld ("Listbox1") nur mit den Zeilen füllen, in denen das "x" in der Spalte steht."
Hier der Code von Chris:
Sub Suchen()
Dim i As Integer
Dim lngArr As Integer
Dim SuchZelle As String
Application.ScreenUpdating = False
SuchZelle = "x"
With Worksheets("Tabelle1")
lngArr = Application.WorksheetFunction.CountIf(.Range("A1:A200"), SuchZelle)
If lngArr = 0 Then
MsgBox "Es sind keine 'x' vorhanden !!!"
Exit Sub
End If
ReDim MyArray(1 To lngArr, 0 To 4)
lngArr = 0
For i = 1 To 200
If .Cells(i, 1) = SuchZelle Then
lngArr = lngArr + 1
MyArray(lngArr, 0) = .Cells(i, 2)
MyArray(lngArr, 1) = .Cells(i, 3)
MyArray(lngArr, 2) = .Cells(i, 4)
MyArray(lngArr, 3) = .Cells(i, 5)
MyArray(lngArr, 4) = .Cells(i, 6)
End If
Next i
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.List = MyArray
End With
End Sub