Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Kleine Anpassung im Such-Code

Kleine Anpassung im Such-Code
Pascal
Guten Tag allerseits
Vorab wünsch ich Euch allen ein gutes neues Jahr, viel Glück und immer gute Gesundheit.
Zu meiner Frage / Problem:
In einer grossen Arbeitsmappe Excel hab ich – verteilt über unzählige Tabellenblätter – diverse Datensätze gespeichert.
Diese können über eine Userform mittels Volltextsuche durchsucht werden.
D.h. es kann nach einem Begriff gesucht werden.
Folgender Code hab ich dazu hinter der SUCHEN-Schaltfläche meiner UserForm:
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.Value = ""
End Sub
Die Suche an sich selber funktioniert gut. D.h. es werden auf dem Registerblatt SUCHE alle gefundenen Einträge der Datenbank bei welchen der gesuchte
Begriff gefunden wurde aufgelistet.
Es kann dan (wieder über die Userform) innerhalb dieser gefundenen Datensätzen immer weiter eingrenzend weitergesucht werden, bis man endlich beim gesuchte
Datensatz ist.
Die Auflistung der Suchresultate (Datensätze) erfolgt wie gesagt im Tabellenblatt SUCHE
Mein Problem ist nur, dass hier nicht immer gleich dargestellt / gleich formatiert – aufgelistet wird.
d.h. mal beginnt das Makro die Datensätze in der Spalte A aufzulisten, mal in der Spalte B, Mal in der Spalte D etc…
dies ist unschön. Und da die Datensätze teilweise unterschiedlich lang sind werden sie (da die einzelnen Spalten teilweise zu schmal sind) abgeschnitten.
Daher meine Frage an Euch Profis:
Wie könnte ich meinen obigen Code anpassen, dass mit der Auflistung / Darstellung der gefundenen Datensätzen immer im der Spalte A des Tabellenblatts SUCHE
Begonnen wird ?
HERZLICHEN DANK für Eure Hilfe !

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

Betreff
Benutzer
Anzeige
AW: Kleine Anpassung im Such-Code
05.01.2011 09:48:34
Luschi
Hallo Pascal,
hier die gewünschte Veränderung. Im Such-Quellcode mußt Du nur die Zeilen, die sich auf das Userformular beziehen, ändern; z.B.
strSuchBegriff = "Hallo" in
strSuchBegriff = Such_Formular.TextBox1.Value
https://www.herber.de/bbs/user/72918.xlsm
Gruß von Luschi
aus klein-Paris
AW: Kleine Anpassung im Such-Code
05.01.2011 09:51:18
Pascal
Hi Luschi
wo genau liegt Klein - Paris ? :-)
Herzlichen Dank schon mal für Deine superschnelle Hilfe !
ich werde das gleich mal austesten.
AW: Kleine Anpassung im Such-Code
06.01.2011 08:46:34
Pascal
HERZLICHEN DANK !
Es war exakt das was ich suchte !
schon wieder was dazugelernt
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige