Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche über Mappe - Treffer in Neue

Suche über Mappe - Treffer in Neue
13.07.2006 11:03:53
Helge
Mahlzeit.
Ich benötige eure Hilfe für folgende Problemstellung:
Ich habe eine Arbeitsmappe mit diversen Tabellenblättern (alle sind identisch aufgebaut) und ich möchte nun über einen Button eine Suchfunktion öffnen lassen.
Nach Eingabe meines Suchbegriffes sollen alle Tabellen durchsucht werden (hier möchte ich eine Einschränkung auf einen bestimmten Suchbereich haben) und alle Zeilen mit einem Treffer sollen komplett in einer neuen Arbeitsmappe ausgewiesen werden.
Wichtig dabei ist auch, dass eine "Wertkopie" erstellt wird, da viele Einträge in den Zellen aus einer Datenbank kommen. Die Formate (Farbe, Nachkommastellen etc.) sollen ebenfalls übermommen werden.
Am Ende der Suche soll ein Hinweisfenster erscheinen mit "Die Suche wurde beendet" (wenn sogar die Trefferanzahl erscheinen würde wäre es genial). Nach Bestätigung dieser Meldung soll man dann auf das Ergebnisblatt in der neuen Arbeitsmappe kommen.
Für jegliche Hilfe bin ich dankbar.

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

Betreff
Datum
Anwender
Anzeige
AW: Suche über Mappe - Treffer in Neue
13.07.2006 11:55:04
Helge
Hallo nochmals!
Inzwischen habe ich im Forum einen Eintrag gefunden, der mir schon ein wenig weiterhilft. Allerdings bleiben noch offene Fragen. Ich habe in den Tabellenblättern zum Teil Datenbankverweise und Formeln und die Suche darf sich nur auf den Ausgebwert beschränken (sprich keine Formel soll z.B. nach einem Buchstaben durchsucht werden). Das ist mein Problem 1. Das Problem 2 ist, dass ich den Suchbereich für allen Blätter auf bestimmte Bereiche eingrenzen möchte. Wo muss das eingebaut werden? Problem 3. Bei der Zieltabelle sollte nach Möglichkeit eine "Wertkopie" erstellt werden zum Abschluss.
Hier mal mein Code:

Sub Var_MultiSeek()
'by Ramses
'Sucht in der gesamten Mappe nach einem Begriff und kopiert die
'gefundene Zeile in eine zu definfierende Ergebnistabelle
Dim wks As Worksheet
Dim rng As Range
Dim sAddress As String
'Suchbegriff
Dim sFind As Variant
Dim cr As Long, tarWks As String
'Name_der_Zieltabelle
'Bitte Anpassen !!!!
tarWks = "Zieltabelle"
cr = 65536
If Worksheets(tarWks).Cells(cr, 1) = "" Then
cr = Worksheets(tarWks).Cells(cr, 1).End(xlUp).Row
End If
If cr = 0 Then cr = 1
'Suchbegriff definieren
sFind = InputBox("Bitte Suchbegriff eingeben:")
If sFind = "" Then Exit Sub
'Suchbegriff auf Zelle definieren
'sFind = Worksheets("Tabelle1").Range("A1")
For Each wks In Worksheets
'If wks.Name = tarWks Then Exit Sub
If wks.Name <> tarWks Then
Set rng = wks.Cells.Find(What:=sFind, _
lookat:=xlPart, LookIn:=xlFormulas)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.GoTo rng, True
'Für die Automation kann die "If"-Anweisung auskommentiert werden
'If MsgBox("Suchbegriff: " & sFind & ",gefunden in " _
& wks.Name & ", " & rng.Address, vbYesNo + vbQuestion, "Weitersuchen ?") = vbNo Then Exit Sub
wks.Rows(rng.Row).Copy Destination:=Worksheets(tarWks).Rows(cr)
cr = cr + 1
Set rng = wks.Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
NextStart:
End If
Next wks
MsgBox prompt:="Keine neue Fundstelle!"
End Sub

Anzeige
AW: Suche über Mappe - Treffer in Neue
13.07.2006 12:05:54
Mustafa
Hallo Helge,
habe mal mit meinem bisschen wissen VBA den Code etwas geändert.
Ich hoffe das es läuft.

Sub Var_MultiSeek()
'by Ramses
'Sucht in der gesamten Mappe nach einem Begriff und kopiert die
'gefundene Zeile in eine zu definfierende Ergebnistabelle
Dim wks As Worksheet
Dim rng As Range
Dim sAddress As String
'Suchbegriff
Dim sFind As Variant
Dim cr As Long, tarWks As String
'Name_der_Zieltabelle
'Bitte Anpassen !!!!
tarWks = "Zieltabelle"
cr = 65536
If Worksheets(tarWks).Cells(cr, 1) = "" Then
cr = Worksheets(tarWks).Cells(cr, 1).End(xlUp).Row
End If
If cr = 0 Then cr = 1
'Suchbegriff definieren
sFind = InputBox("Bitte Suchbegriff eingeben:")
If sFind = "" Then Exit Sub
'Suchbegriff auf Zelle definieren
'sFind = Worksheets("Tabelle1").Range("A1")
For Each wks In Worksheets
'If wks.Name = tarWks Then Exit Sub
If wks.Name <> tarWks Then
Set rng = wks.Cells.Find(What:=sFind, _
lookat:=xlPart, LookIn:=xlValues)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.GoTo rng, True
'Für die Automation kann die "If"-Anweisung auskommentiert werden
'If MsgBox("Suchbegriff: " & sFind & ",gefunden in " _
& wks.Name & ", " & rng.Address, vbYesNo + vbQuestion, "Weitersuchen ?") = vbNo Then Exit Sub
wks.rng.Copy Destination:=Worksheets(tarWks).Rows(cr)
cr = cr + 1
Set rng = wks.Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
NextStart:
End If
Next wks
MsgBox prompt:="Keine neue Fundstelle!"
End Sub

Rückmeldung wäre nett.
Viele Grüße aus Köln
Anzeige
Kleiner Fehler enthalten
13.07.2006 12:46:05
Helge
Erst einmal danke für deine Hilfe. Kriege nun aber noch eine Fehlermeldung in dieser Zeile:
wks.rng.Copy Destination:=Worksheets(tarWks).Rows(cr)
Fehler beim kompilieren - Methode oder Datenobjekt nicht gefunden
Fast so wie ich es haben möchte
13.07.2006 13:18:35
Helge
Im Grunde bin ich mit dem Ergebnis zufrieden. Nun brauche ich noch folgende Dinge:
1.) Datensätze in der Zieltabelle immer erst ab Zeile 3 abwärts kopieren (darüber stehen Überschriften)
2.) Die Datensätze sollen als "Wertkopie" in der Zieltabelle stehen (sonst gehen mir die Bezüge flöten)
3.) Die Suche soll auf Bereiche eingeschränkt werden (bei allen Tabellenblättern gleich):
A37-CF60 und A74-CF97
4.) In der Zieltabelle sollte in Spalte CG jeweils der Name des Tabellenblattes stehen, damit ich es später zuordnen kann
Für diese Punkte brauche ich nun noch eure Hilfe...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige