Anzeige
Archiv - Navigation
296to300
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
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche in gesamter Arbeitsmappe

Suche in gesamter Arbeitsmappe
19.08.2003 10:57:50
Matthias H.
Hallo,
ich habe eine UserForm erstellt in die ich einen Suchbegriff eingebe und im aktuellen Blatt suche(Search) bzw. weitersuche(Searchon_this):
Dim Result1 As Integer

Sub Search() 'Suchen
Cells(1, 1).Select
If suche.TextBox1.Text <> "" Then
On Error GoTo err
Cells.Find(What:=suche.TextBox1.Text, After:=ActiveCell, lookin:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
suche.CommandButton2.Caption = "Weitersuchen"
Result1 = Selection.Cells.Row & Selection.Cells.Column ' Adresse d.1. Suchergebnisses speichern
Else
MsgBox "Bitte Suchbegriff eingeben."
End If
ErrorExit:
Exit Sub
err:
suche.CommandButton2.Caption = "Suchen"
suche.TextBox1.Text = ""
suche.TextBox1.SetFocus
MsgBox "Nichts gefunden!"
End Sub


Sub Searchon_this() 'Weitersuchen im aktuellen Blatt
Cells.FindNext(After:=ActiveCell).Activate
End Sub

Ich möchte "Weitersuchen" aber auf die gesamte Arbeitsmappe ausweiten(Searchon_all). Mein Ansatz funktioniert nicht so richtig, hat jemand einen Tip? In diesem Zusammenhang noch eine Frage, wie kann ich Cells.Find... auf einen bestimmten Zeilen-/Spaltenbereich beschränken?

Sub Searchon_all() 'Weitersuchen in allen Blättern
On Error GoTo err
If Cells.FindNext(After:=ActiveCell).Row & Cells.FindNext(After:=ActiveCell).Column = Result1 Then 'Vergleich mit Adresse d. 1. Suchergebnisses
MsgBox "gleich"
Nextsheet
Else
Cells.FindNext(After:=ActiveCell).Activate
End If
ErrorExit:
Exit Sub
err:
Nextsheet
End Sub


Sub Nextsheet()
n = ActiveSheet.Index
Sheets(n + 1).Select
If Selection.Cells.Row & Selection.Cells.Column = 11 Then Nextsheet
End Sub

Gruß
Matthias

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche in gesamter Arbeitsmappe
19.08.2003 11:10:48
sergiesam
Hi,
1) wenn du in allen Blättern suchen willst, brauchst du sie vorher nur markieren
z.B. mit

Sub AlleBlätterMarkieren()
Dim a() As String, i As Byte, sh As Worksheet
i = 1
For Each sh In Sheets
ReDim Preserve a(i) As String
a(i - 1) = sh.Name
i = i + 1
Next sh
ReDim Preserve a(i - 2) As String
Sheets(a).Select
End Sub

2) um nur einen Zellbereich zu durchsuchen, sagst du
Range("A1:A10").Find(.....)
Sam

Laufzeitfehler
19.08.2003 11:28:43
Matthias H.
Hallo Sam,
Danke für Deine Antwort.
wenn ich das AlleBlätterMarkieren Makro laufen lasse, kommt in der Zeile
Sheets(a).Select
ein Laufzeitfehler 1004 "Die Select-Methode des Sheets-Objektes konnte nicht ausgeführt werden."
Meine Blattbezeichnungen enthalten Buchstaben, Zahlen und Punkte, aber a ist ja als String definiert...
Die Sache mit Range(xy).Find klappt.
Gruß
Matthias

Anzeige
Fehler gefunden, Frage
19.08.2003 11:37:37
Matthias H.
Hallo Sam
Hatte die letzten 2 Blätter ausgeblendet. Deshalb konnten sich nicht markiert werden. Kann ich diese Blätter von der Markierung ausnehmen?
Matthias

AW: Fehler gefunden, Frage
19.08.2003 11:44:06
sergiesam
Hi,
du brauchst nur vorher abfragen, ob das Blatt sichtbar ist:

Sub AlleBlätterMarkieren()
Dim a() As String, i As Byte, sh As Worksheet
i = 1
For Each sh In Sheets
If sh.Visible = True Then    'wenn sichtbar dann zum Array hinzufügen
ReDim Preserve a(i) As String
a(i - 1) = sh.Name
i = i + 1
End If
Next sh
ReDim Preserve a(i - 2) As String
Sheets(a).Select
End Sub

Gruß aus Linz
Sam

Anzeige
Makro geht, Suche nicht
19.08.2003 12:56:03
Matthias H.
Vielen Dank!
jetzt habe ich nochwas festgestellt: Wenn alle Blätter markiert sind, und ich gebe einen Suchbegriff ein, der nicht auf dem aktiven Blatt steht, wird er auch nicht in den anderen Blättern gefunden. Wenn ich mit der bestehenden Markierung die Excel-Suche nutze funktioniert es.
Die Syntax Selection.Find... bezieht sich doch auf alle markierten Blätter, oder?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige