Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suchfunktion anpassen - wer kann helfen?

Forumthread: Suchfunktion anpassen - wer kann helfen?

Suchfunktion anpassen - wer kann helfen?
14.03.2006 16:32:26
Dana
Hallo liebe Excel-Experten.
Unten aufgeführtes Makro sucht über alle Tabellenblätter nach einem eingegebenen Begriff und markiert die gefundene Zelle farbig. Dann erfolgt eine Abfrage, ob man weitersuchen will. Hier mein erstes Problem: Drückt man nun auf "nein", so dass die Suche abbricht, wird die Farbe nicht rückgängig gemacht und die zuletzt gefundene Zelle bleibt farbig markiert. Wer kann mir das Makro so anpassen, dass es auch beim vorzeitigen Beenden der Suche, die zuletzt gefundene Zelle wieder farblos darstellt? Und mein zweites Problem ist: wie lasse ich das Makro nur in einem bestimmten Zellbereich (z.B. B1:B100) suchen?. Vielen vielen Dank für Eure Hilfe. Ich tüftle jetzt einfach schon zu lange ;-)
Gruss Dana

Sub Suchen_alle_Tab()
Dim wks As Worksheet
Dim rng As Range
Dim strSuch As String
Dim strAddress As String, strFind As String
strFind = InputBox("Bitte Suchbegriff eingeben:", Application.UserName, strSuch)
If strFind = "" Then Exit Sub
For Each wks In Worksheets
Set rng = wks.Cells.Find(strFind, lookat:=xlPart, LookIn:=xlFormulas)
If Not rng Is Nothing Then
strAddress = rng.Address
Do
Application.Goto rng, False
Selection.Interior.ColorIndex = 40
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Selection.Interior.ColorIndex = xlNone
Set rng = Cells.FindNext(After:=ActiveCell)
If rng.Address = strAddress Then Exit Do
Loop
End If
Next wks
strSuch = strFind
MsgBox "Dokument wurde durchsucht!", False, Application.UserName
Selection.Interior.ColorIndex = xlNone
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Mmmhhh.... - VBA gut?
14.03.2006 16:35:42
{Boris}
Hi Dana,
zu 1)
Stell diese 2 Zeilen einfach um:
Selection.Interior.ColorIndex = 40
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Zu 2)
Statt Cells einfach Range("B1:B100")
Grüße Boris
AW: Mmmhhh.... - VBA gut?
14.03.2006 17:19:25
Dana
Hallo Boris
... keine Ahnung wie das "VBA gut" dahin kommt. Hab mich wohl beim nach unten gehen verscrollt... ich such mir die meisten Makros aus dem Netz zusammen und pass sie dann mit meinen WENIGEN Erfahrungen an.
Leider genügen diese nicht, um Deine Vorschläge einzubauen.
zu 1)
ich weiss nicht, wie ich ihm sagen soll, dass er BEVOR das Makro beendet wird (Then Exit Sub), die Farbe löscht. "Einfach umstellen" funktioniert leider nicht :-(
zu 2)
an welcher Stelle genau muss ich "Cells" ersetzen? Habe es ein wenig versucht, funktioniert aber auch nicht.
Vielleicht hast Du noch einen Tip?
Danke
Dana
Anzeige
AW: Mmmhhh.... - VBA gut?
14.03.2006 17:31:06
Lars
Option Explicit

Sub Suchen_alle_Tab()
Dim wks As Worksheet
Dim rng As Range
Dim strSuch As String
Dim strAddress As String, strFind As String
strFind = InputBox("Bitte Suchbegriff eingeben:", Application.UserName, strSuch)
If strFind = "" Then Exit Sub
For Each wks In Worksheets
Set rng = wks.[B1:B100].Find(strFind, lookat:=xlPart, LookIn:=xlFormulas)
If Not rng Is Nothing Then
strAddress = rng.Address
Do
Application.Goto rng, False
Selection.Interior.ColorIndex = 40
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then
Selection.Interior.ColorIndex = xlNone
Exit Sub
End If
Set rng = wks.[B1:B100].FindNext(After:=ActiveCell)
If rng.Address = strAddress Then Exit Do
Loop
End If
Next wks
strSuch = strFind
MsgBox "Dokument wurde durchsucht!", False, Application.UserName
Selection.Interior.ColorIndex = xlNone
End Sub

mfg Lars
Anzeige
AW: Mmmhhh.... - VBA gut?
14.03.2006 17:34:15
Dana
Hallo Lars,
vielen vielen Dank.
Es funktioniert klasse!
Gruss Dana
Mit Verlaub...
14.03.2006 17:46:45
{Boris}
Hi Dana,
...auch wenn bereits gelöst:
Was ist daran nicht zu verstehen, diese beiden Zeilen umzustellen?
VORHER
Selection.Interior.ColorIndex = 40
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then Exit Sub
NACHHER
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Selection.Interior.ColorIndex = 40
Also erst NACH der Frage einfärben. Warum sollte das nicht funktionieren?
Grüße Boris
Anzeige
AW: Mit Verlaub...
14.03.2006 19:01:30
Lars
Hi,
Dana will vielleicht die gefundenen Zelle erstmal farbig sehen und dann entscheiden?
mfg Lars
AW: Mmmhhh.... - VBA gut?
18.03.2006 14:48:55
Bernd
Hallo Lars,
nach langer Suche habe ich Deinen Skript _Suchen_alle_Tab() gefunden. Ich habe mich sehr gefreut. Er funktioniert bei mir innerhalb einer Mappe über die darin enthaltenen 3 Tabellen hervorragend.(auch über 14 Tabellen in dieser Mappe)
Wie kann ich die Funktion auf weitere Mappen in dieser Datei ausdehnen, die sich in weiteren 6 Mappen mit je 3 Tabellen befinden?
Ich habe es mit dem Zusatz:
Dim wbk As Workbooks
Workbooks.Open Filename:="D:\xxx\xxx\xxx\30.6.2004.xls"
versucht und ...Laufzeitfehler 1004 erhalten.
Du findest sicher die Fehler dabei.
Für eine ev. Hilfe im voraus den besten Dank.
mit fr. Grüßen
Friedrich
Anzeige
;

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