Suche per (*) in Spalte/xlWhole = xlPart ersetzen
21.02.2010 19:55:14
Frank
Hallo
Viele Dank Klaus-Dieter
aber irgendwie geht das nicht. Über die "Schaltfläche1" in dem Tabellenblatt "Datenbank" gelangt man in das UserForm1.
Userform1 in der Codeansicht, kann dort nirgends den Eintrag XLWhole finden und gegen XLPart ersetzen.
Zitat "In der Find-Methode den Paramter LookAt von xlWhole auf xlPart änderst, geht das. Auf die Sternchen kannst du dabei verzichten, nur den Textteil eingeben."
Ich stelle mal den kopierten Code hierein
Private Sub UserForm_Initialize()
Dim Breite As Double, sColumnwidths As String
Set wksData = Worksheets("Datenbank")
LastRow = wksData.Cells(wksData.Rows.Count, 1).End(xlUp).Row
Call ArtikelEinlesen
' Spaltenbreiten in Listbox
For Spalte = 1 To Spalten
Select Case Spalte
Case 1: Breite = 100 'Material
Case 2: Breite = 200 'Materialkurztext
Case 3: Breite = 60
Case 4: Breite = 60
Case 5: Breite = 60
Case 6: Breite = 30
Case 7: Breite = 60
Case Else
Breite = 0
End Select
If sColumnwidths = "" Then
sColumnwidths = Breite & "Pt"
Else
sColumnwidths = sColumnwidths & ";" & Breite & "Pt"
End If
Next
sColumnwidths = sColumnwidths & ";0Pt" 'Breite für Zeilennummer
With Me.ListBox1
.ColumnCount = Spalten + 1
.ColumnWidths = sColumnwidths
.List = arrArtikel
End With
End Sub
Private Sub ArtikelEinlesen()
'Artikeldaten einlesen
With wksData
ReDim arrArtikel(Zeile1 To LastRow, 1 To Spalten + 2)
For Zeile = Zeile1 To LastRow
For Spalte = 1 To Spalten
arrArtikel(Zeile, Spalte) = .Cells(Zeile, Spalte).Text
Next Spalte
arrArtikel(Zeile, Spalten + 1) = Zeile 'Zeilennummer des Artikels in Daten-Tabelle
Next Zeile
End With
End Sub
'**************Listen in Abhängkeit der Anfangsbuchstaben***************
Private Sub TextBox1_Change()
'Anfangsbuchstaben der gesuchten Artikel
Dim anzTreffer As Long, ZeileTreffer As Long
'Treffer in Artikelliste markieren und zählen
For Zeile = Zeile1 To LastRow
If LCase(Left(arrArtikel(Zeile, SpalteSuchen), Len(Me.TextBox1.Text))) = _
LCase(Me.TextBox1) Then
arrArtikel(Zeile, Spalten + 2) = "x"
anzTreffer = anzTreffer + 1
Else
arrArtikel(Zeile, Spalten + 2) = ""
End If
Next
If anzTreffer > 0 Then
'Treffer aus Artikelliste auslesen und in Listbox anzeigen
ReDim arrTreffer(1 To anzTreffer, 1 To Spalten + 1)
ZeileTreffer = 0
For Zeile = Zeile1 To LastRow
If arrArtikel(Zeile, Spalten + 2) = "x" Then
ZeileTreffer = ZeileTreffer + 1
For Spalte = 1 To Spalten + 1
arrTreffer(ZeileTreffer, Spalte) = arrArtikel(Zeile, Spalte)
Next
End If
Next
With Me.ListBox1
.Clear
.List = arrTreffer
End With
Else
Me.ListBox1.Clear
' MsgBox "Keine Treffer"
End If
End Sub
oder habe ich da irgend etwas übersehen.
vergebt mir VBA-Experts
Gruß Frank