Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
312to316
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
312to316
312to316
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox - Auswahl mit Suchkriterium

Listbox - Auswahl mit Suchkriterium
23.09.2003 16:37:23
AxelW
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox - Auswahl mit Suchkriterium
23.09.2003 17:31:37
ChrisL
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
Anzeige
AW: DANKE, DANKE, DANKE
23.09.2003 18:06:37
AxelW
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
Danke für die Rückmeldung o.T.
23.09.2003 21:21:19
ChrisL

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige