Listbox - Auswahl mit Suchkriterium

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Listbox - Auswahl mit Suchkriterium
von: AxelW
Geschrieben am: 23.09.2003 16:37:23

Hallo Zusammen im Forum,

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

Bild


Betrifft: AW: Listbox - Auswahl mit Suchkriterium
von: ChrisL
Geschrieben am: 23.09.2003 17:31:37

Hi Axel

Option Explicit


Private Sub CommandButton1_Click()
Dim iZeile As Long, iAnzahl As Long
If ListBox1.ListIndex = -1 Then
    MsgBox "Es wurde keine Auswahl getroffen."
    Exit Sub
End If
For iZeile = 1 To Range("A65536").End(xlUp).Row
    If Cells(iZeile, 1) = "x" Then iAnzahl = iAnzahl + 1
    If iAnzahl = ListBox1.ListIndex + 1 Then Exit For
Next iZeile
Cells(iZeile, 1) = ""
ListBox1.RemoveItem (ListBox1.ListIndex)
End Sub



Private Sub UserForm_Initialize()
Call suchen
End Sub



Und dann habe ich leider noch ein kleiner Fehler im anderen Makro gefunden (letzte Zeile Application.ScreenUpdating = True)... Sorry wird langsam peinlich

Option Explicit

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 "Keine Einträge gemäss den ausgewählten Kriterien"
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

Application.ScreenUpdating = True
End Sub



Gruss
Chris


Bild


Betrifft: AW: DANKE, DANKE, DANKE
von: AxelW
Geschrieben am: 23.09.2003 18:06:37

Hallo Chris,

es ist kaum zu glauben. Dein Code läuft super. Ich versuche gerade hinter "Deine Zeilen" zu kommen. Die Sache mit dem "Application.ScreenUpdating = True" habe ich gestern Abend auch entdeckt, nachdem ich längere Zeit versucht hatte, Deinen Code nachzuvollziehen.
Nochmals besten Dank für Deine Tipps.

Bis irgendwann wieder mal,

Gruss, Axel


Bild


Betrifft: Danke für die Rückmeldung o.T.
von: ChrisL
Geschrieben am: 23.09.2003 21:21:19




 Bild

Beiträge aus den Excel-Beispielen zum Thema " Listbox - Auswahl mit Suchkriterium"