Code
06.02.2014 12:13:17
Rudi
Hallo,
nur damit du besser wirst:
1. wozu .Selected(x)=True/ False? Geht auch ohne.
Private Sub CommandButton1_Click()
Dim X As Long '......................Variable deklarieren
On Error Resume Next '...............wenn Fehler, mach weiter
ListBox2.Clear '.....................Listbox2 leeren
With UserForm1.ListBox1 '............Listbox1 referenzieren
For X = 0 To .ListCount - 1 '.......Schleife starten über alle Einträge in Listbox1
' .Selected(X) = False '.............Ausschalten falls Listboxeintrag markiert ist
If InStr(1, UCase(.List(X)), UCase(TextBox1)) > 0 Then ' wenn Zeichenfolge vorhanden ist-
' .Selected(X) = True '................................. - markiere Listboxeintrag
ListBox2.AddItem .List(X) '......Setze Diesen Eintrag als neuen Eintrag in Listbox2
' MsgBox "ok = weiter ...", vbOKOnly, "zum Verstehen ... :-)" 'kannst Du später löschen
' .Selected(X) = False '........... Markierung entfernen
End If '..........................Ende iF-Abfrage
Next '..............................nächster Eintrag(Schleife weiterführen)
End With '...........................Referenzierung aufheben
End Sub
2. Die Listbox1 kann man ohne Schleife füllen
Private Sub UserForm_Initialize()
'Dim Zeile As Integer '......................Variable deklarieren
ListBox1.Clear '............................Listbox leeren
'Zeile = 2 '.................................Zeile festlegen 2="B"
'While Tabelle1.Cells(Zeile, 2) "" '......Schleife bis in Spalte(2) Leerstring kommt
' ListBox1.AddItem Tabelle1.Cells(Zeile, 2) 'Neuer Eintrag in Listbox1
' Zeile = Zeile + 1 '........................Schleifenzähler um 1 erhöhen
'Wend '......................................Schleife weiter wenn Spalte(2) nicht leer
With Tabelle1
'Listbox füllen
ListBox1.List = .Range(.Cells(2, 2), .Cells(Rows.Count, 2).End(xlUp)).Value
End With
End Sub
Gruß
Rudi