Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suchmaschine

Forumthread: Suchmaschine

Suchmaschine
08.07.2004 11:15:24
Mark
Guten Morgen,
ich habe in diesem Forum eine sehr gute Suchmaschine gefunden:

Sub suchen()
Dim SB As Variant
SB = InputBox("Wonach suchen?")
On Error GoTo ende
Cells.Find(What:=SB & "*", lookAt:=xlWhole).Activate
Exit Sub
ende:
MsgBox SB & " nicht gefunden!         ", 64, "teile mit..."
End Sub

Ich möchte aber, daß sie in allen blättern nach dem eingegebenen Begriff sucht. Die Datei (in der man suchen mußt) besteht aus einer Anzahl von Blättern, die immer verschieden ist und die immer verschiedenen Namen haben.
Wie kann man das Problem lösen?
Vielen Dank
Mark
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchmaschine
08.07.2004 11:30:04
Uwe
Hallo Mark,
so sollte es gehen:
Option Explicit
Option Compare Text 'wenn Groß-Kleinschreibung unberücksichtigt bleiben soll

Sub SucheZellen()
Dim S As String
Dim Z As Range
Dim WS As Worksheet
S = InputBox("Wonach soll gesucht werden?")
If S = "" Then Exit Sub
'S = "*" & S & "*"  'es werden auch Zellen angezeigt, die noch mehr als den Suchstring enthalten
For Each WS In ActiveWorkbook.Worksheets
For Each Z In WS.UsedRange.Cells
If Z.Text Like S Then
WS.Activate
Z.Select
If MsgBox("Weitersuchen nach """ & S & """?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
End If
Next Z
Next WS
End Sub

Gruß Uwe
Anzeige
AW: Suchmaschine
Worti
Hallo Mark,
mein Vorschlag:


'Suche über alle Tabellenblätter eines Excel-Sheets
Sub Globale_Suche()
    
    Dim As Range
    Dim Suchwert As Variant
    Dim ws As Worksheet
    Dim ersterFundort As String
    
    Suchwert = InputBox("Wonach soll gesucht werden")
    If Suchwert = "" Then
       Exit Sub
    End If
    For Each ws In ActiveWorkbook.Worksheets
        Set c = ws.Cells.Find(what:=Suchwert, lookat:=xlValue)
            If Not Is Nothing Then
               Do Until Is Nothing
                 If c.Address = ersterFundort Then Exit Do
                 If ersterFundort = "" Then ersterFundort = c.Address
                 MsgBox "Wert gefunden an der Stelle " & ws.Name & "!" & c.Address
                 Set c = ws.Cells.FindNext(c)
               Loop
            End If
        Set c = Nothing
        ersterFundort = ""
    Next ws
End Sub


lookat:=xlValue kannst du natürlich durch lookat:=xlWhole ersetzen
Worti
Anzeige
AW: Suchmaschine
08.07.2004 11:41:36
ANdreas
Hallo Mark,
nutze doch die integrierte Suche (STRG + F). Da kannst Du auch in der gesamten Arbeitsmappe suchen lassen...
Gruß
Andreas
AW: Suchmaschine
Mark
Danke an alle.
Einfach super.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige