Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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
Suche per (*) oder (*re ) in Spalten
Frank
Hallo zusammen
las gerade den Thread "zwei Suchkriterien über TXT-Box erfüllen" und wollte zwei Fragen loswerden,
Wie kann in dem Uf https://www.herber.de/bbs/user/68128.xls nicht nur per Anfangsbuchstaben sondern auch mittels
vorgestelltem (*) + irgendeinen weiteren Eingabe (z.b. *r = Anfang für Fred oder Friedrich )
gesucht werden?
Und kann man die Suche auch auf mehrere Spalten ausdehnen?
Danke vorab des Feedbacks, euch VBA-Experts
Gruß Frank
P.S. lese begeistert die einzelnen Beiträge der unterschiedlichsten Kategorien

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Suche per (*) oder (*re ) in Spalten
21.02.2010 19:24:27
Klaus-Dieter
Hallo Frank,
wenn du 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.
Viele Grüße Klaus-Dieter

Online-Excel
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
Anzeige
AW: Suche per (*) in Spalte/xlWhole = xlPart ersetzen
21.02.2010 20:04:04
Uduuh
Hallo,
    If LCase(Left(arrArtikel(Zeile, SpalteSuchen), Len(Me.TextBox1.Text))) Like _
LCase(Me.TextBox1) Then

Gruß aus’m Pott
Udo

AW: Suche per (*) in Spalte/xlWhole = xlPart ersetzen
21.02.2010 20:16:50
Gerd
Hallo,
noch ein Vorschlag.
If InStr(LCase(arrArtikel(Zeile, SpalteSuchen)), Me.TextBox1.Text) Then
arrArtikel(Zeile, Spalten + 2) = "x"
anzTreffer = anzTreffer + 1
Else
arrArtikel(Zeile, Spalten + 2) = ""
End If
Next
'................
'................
Gruß Gerd
Suche per *abc in Spalten
21.02.2010 20:18:17
Frank
Hallo
Klasse klappt wunderbar, nur geht das auch über alle Spalten?
hier der vorgefertigte Anfang des Codebespiels vom letzten oben
Private arrArtikel() As String, arrTreffer() As String
Private wksData As Worksheet, LastRow As Long
Private Zeile As Long, Spalte As Long, ZeileData As Long
'Konstanten zur Steuerung des Datenaustausches zwischen Tabelle und Userform
Private Const Zeile1 As Long = 3 '1. Datenzeile in Datentabelle
Private Const Spalten As Long = 4 'Letzte einzulesende Daten-Spalte für Listbox
Private Const SpalteSuchen As Long = 4 'Spalte mit Suchkriterium
könnte in der letzten Anweisung kein x stehen für alle Spalten, mal dumm gefragt
Gruß Frank
Anzeige
AW: Suche per (*) in Spalte/xlWhole = xlPart ersetzen
21.02.2010 21:06:54
Klaus-Dieter
Hallo Frank,
ich habe mich auf diesen Quelltextteil in deinem Userform suchkriterien bezogen:
'############################################ 
'Einlesen in die Datenmaske 
'############################################ 
Private Sub OK_Click()
Dim wee As Integer
 On Error GoTo ErrorHandler
 
 wee = Selection(1)
 
aa = [A:A].Find(wee, LookIn:=xlValues, LookAt:=xlWhole).Row
[size=8]Code eingefügt mit [url=http://vbahtml.origo.ethz.ch] VBA in HTML 2.0.0.1[/url][/size]
Viele Grüße Klaus-Dieter

Online-Excel
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige