Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1192to1196
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
Inhaltsverzeichnis

Volltextsuche läuft nicht korrekt

Volltextsuche läuft nicht korrekt
Pascal
Schönen guten Vorweihnachtsmorgen zusammen ! :-)
in einer grossen Excel-Datenbank mit über hundert Tabellenblättern hab ich mir eine Volltextsuche eingebaut.
Der Code wurde vor einiger Zeit schon mal mühsam zusammengebastelt:
Option Explicit
Private Sub CommandButton1_Click()
'Sheets("Suche").UsedRange.Clear
On Error Resume Next
Dim oWS As Worksheet
Dim rngUnion As Range, rngFund As Range
Dim strErste$, strSuchBegriff$
Dim MaxRow As Long
Dim WS_Suche As Worksheet
'Tabelle für die Auflistung
Set WS_Suche = Sheets("Suche")
Such_Formular.CommandButton1.Visible = False
strSuchBegriff = Such_Formular.TextBox1.Value
If StrPtr(strSuchBegriff) = 0 Then
Exit Sub
End If
MaxRow = 1
Sheets("Suche").UsedRange.Clear
For Each oWS In ThisWorkbook.Worksheets
If oWS.Name  WS_Suche.Name Then
Set rngFund = oWS.UsedRange.Find(strSuchBegriff, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
If Not rngFund Is Nothing Then
Set rngUnion = Intersect(oWS.UsedRange, oWS.Rows(rngFund.Row))
strErste = rngFund.Address
Set rngFund = oWS.UsedRange.FindNext(rngFund)
Do While strErste  rngFund.Address
Set rngUnion = Union(Intersect(oWS.UsedRange, oWS.Rows(rngFund.Row)), rngUnion)
Set rngFund = oWS.UsedRange.FindNext(rngFund)
Loop
End If
If Not rngUnion Is Nothing Then
For Each rngUnion In rngUnion.Areas
rngUnion.Copy WS_Suche.Cells(MaxRow, 1)
MaxRow = MaxRow + rngUnion.Rows.Count
Next rngUnion
Set rngUnion = Nothing
End If
End If
Next oWS
If MaxRow > 1 Then
Such_Formular.CommandButton3.Visible = True
Else
Such_Formular.CommandButton3.Visible = False
End If
Such_Formular.TextBox1.Text = ""
End Sub
Nun hab ich bemerkt, dass mein obiger Code wohl doch nicht sauber funktioniert. Denn.... Suche ich nach einem Wort, Namen oder Begriff den es zu 100% gibt in der Datenbank, wird dieser nicht gefunden.
Wo könnte sich ein Fehler eingeschlichen haben bei meinem Code ?
oder ...
wo müsste ich bei meinem Code was ändern ?
Danke herzlich für die Hilfe !

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Volltextsuche läuft nicht korrekt
24.12.2010 19:27:11
jowe
Hallo Pascal,
Du schreibst im Code dim strSuchBegriff$, im weiteren Code unterschlägst Du dann aber das $-Zeichen.
Und Du prüfst die Stringvariable auf den Wert 0 statt auf eine leere Zeichenfolge.
Dir auch ein schönes Weihnachtsfest und einen guten Rutsch
Gruß
Jochen
AW: Volltextsuche läuft nicht korrekt
27.12.2010 06:22:47
Pascal
Guten Tag Jochen
Bitte entschuldige meine verspätete Antwort !
Aber Dir vorerst mal Dankeschön für den Hinweis !
doch ... wie genau müsste ich das korrigieren ? (oder wo genau ?)
währe toll, wenn Du mir dabei helfen könntest, meinen Code wieder auf Vordermann zu bringen.
AW: Volltextsuche läuft nicht korrekt
27.12.2010 10:05:09
jowe
versuchs mal so:
Private Sub CommandButton1_Click()
'Sheets("Suche").UsedRange.Clear
On Error Resume Next
Dim oWS As Worksheet
Dim rngUnion As Range, rngFund As Range
Dim strErste$, strSuchBegriff$
Dim MaxRow As Long
Dim WS_Suche As Worksheet
'Tabelle für die Auflistung
Set WS_Suche = Sheets("Suche")
Such_Formular.CommandButton1.Visible = False
strSuchBegriff$ = Such_Formular.TextBox1.Value
If StrPtr(strSuchBegriff$) = "" Then
Exit Sub
End If
MaxRow = 1
Sheets("Suche").UsedRange.Clear
For Each oWS In ThisWorkbook.Worksheets
If oWS.Name  WS_Suche.Name Then
Set rngFund = oWS.UsedRange.Find(strSuchBegriff$, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
If Not rngFund Is Nothing Then
Set rngUnion = Intersect(oWS.UsedRange, oWS.Rows(rngFund.Row))
strErste$ = rngFund.Address
Set rngFund = oWS.UsedRange.FindNext(rngFund)
Do While strErste$  rngFund.Address
Set rngUnion = Union(Intersect(oWS.UsedRange, oWS.Rows(rngFund.Row)),  _
rngUnion)
Set rngFund = oWS.UsedRange.FindNext(rngFund)
Loop
End If
If Not rngUnion Is Nothing Then
For Each rngUnion In rngUnion.Areas
rngUnion.Copy WS_Suche.Cells(MaxRow, 1)
MaxRow = MaxRow + rngUnion.Rows.Count
Next rngUnion
Set rngUnion = Nothing
End If
End If
Next oWS
If MaxRow > 1 Then
Such_Formular.CommandButton3.Visible = True
Else
Such_Formular.CommandButton3.Visible = False
End If
Such_Formular.TextBox1.Value= ""
End Sub

Anzeige
AW: Volltextsuche läuft nicht korrekt
27.12.2010 11:40:19
Pascal
Danke für die Super - Hilfe
werde den Code gleich mal testen und dann Feedback posten hier ....
AW: Volltextsuche läuft nicht korrekt
27.12.2010 13:19:21
Pascal
Also... habe nun den obigen Code hinter meinen Such-Button gelegt und getestet.
Leider ... läuft der Code nun offenbar gar nicht mehr.
d.h. es werden keine Begriffe in der Datenbank gefunden. Auch nicht solche die zu 100% und mehrmals exisiteren.
hat sich irgendwo noch nen Fehler eingeschlichen ?
AW: Volltextsuche läuft nicht korrekt
28.12.2010 11:12:47
JoWE
Hallo Pascal,
kannst Du mal ein Beispielfile hochladen? Kann ja ruihig abgespeckt sein!
Jochen
AW: Volltextsuche läuft nicht korrekt
28.12.2010 11:20:05
Pascal
Danke für die Anfrage
aber ... vor rund einer halben Stunde hab ich den Fehler gefunden und beheben können.
(es lag daran dass der Text nicht mit "" abgefragt werden durfte, sondern mit 0)
jetzt läuft alles zufriedenstellend :-)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige