Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
496to500
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
496to500
496to500
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Suchen über mehrere Tabellenblätter
12.10.2004 13:18:31
Michael
Hallo nocheinmal
Ich habe eine Suchfunktion über einer Inputbox gefunden (Suchen über mehrere Tabellenblätter). Kann man das so modifiziern, daß die Namen schon gefunden werden, wenn man nur die Hälfte eingibt. Z.B. "Mayer" suchen will ich mit "May". Und kann man trotz aktivierter Inputbox das Tabellenblatt bearbeiten?

Sub Suchen()
Dim wks As Worksheet
Dim rng As Range
Dim sAddress As String, sFind As String
sFind = InputBox(vbCr & vbCr & "Bitte Suchbegriff eingeben:", _
"Eingabe Suchbegriff")
If sFind = "" Then Exit Sub
For Each wks In Worksheets
Set rng = wks.Cells.Find(what:=sFind, _
lookat:=xlWhole, LookIn:=xlFormulas)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
Application.Goto Reference:=Range("A1"), Scroll:=True
Range(rng.Address).Select
If MsgBox("Soll die Suche fortgesetzt werden ?", _
vbYesNo + vbQuestion, "Frage an " & _
Application.UserName & ":") = vbNo Then Exit Sub
Set rng = Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Next wks
MsgBox "Es gibt keine neue Fundstelle !", vbYes + vbInformation, _
"Dezenter Hinweis für " & Application.UserName & ":"
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen über mehrere Tabellenblätter
Beni
Hallo Michael,
definiere Suchbegriff & "*"
Gruss Beni

Sub Suchen()
Dim wks As Worksheet
Dim rng As Range
Dim sAddress As String, sFind As String
sFind = InputBox(vbCr & vbCr & "Bitte Suchbegriff eingeben:", _
"Eingabe Suchbegriff") & "*" ' plus Sterchen
If sFind = "" Then Exit Sub
For Each wks In Worksheets
Set rng = wks.Cells.Find(what:=sFind, _
lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
Application.Goto Reference:=Range("A1"), Scroll:=True
Range(rng.Address).Select
If MsgBox("Soll die Suche fortgesetzt werden ?", _
vbYesNo + vbQuestion, "Frage an " & _
Application.UserName & ":") = vbNo Then Exit Sub
Set rng = Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Next wks
MsgBox "Es gibt keine neue Fundstelle !", vbYes + vbInformation, _
"Dezenter Hinweis für " & Application.UserName & ":"
End Sub

Anzeige
AW: Suchen über mehrere Tabellenblätter
Uduuh
Hallo,
zu 1:
Set rng = wks.Cells.Find(what:=sFind, _
lookat:=xlPart, LookIn:=xlFormulas)
zu 2: nein
Gruß aus'm Pott
Udo

danke noch eine Frage
12.10.2004 13:50:18
Michael
Danke
Genau das habe ich gesucht. Gibt es vielleicht eine andere Möglichkeit (Ohne Inputbox - vielleicht) Vielleicht mit einer Userform wo man das Tabellenblatt trotz aktivierter Userform bearbeiten kann.
Gruß Michael
AW: danke noch eine Frage
Uduuh
Hallo,
ja geht.
showModal-Eigenschaft der UF auf False setzen.
Gruß aus'm Pott
Udo

Anzeige
danke noch eine Frage
12.10.2004 14:02:11
Michael
Danke
Ich hoffe daß das nicht unverschämt ist von mir. Aber wie kann ich den Code von der Inputbox so umwandeln daß das mit der Userform funktioniert? Oder muß der Code total umgeschrieben werden? Falls ja, dann begnüge ich mich mit der Inputbox (Besser als gar nichts)
Grüße an den Pott
Michael
Selbst Herausgefunden
12.10.2004 14:09:41
Michael
Danke nocheinmal für Eure Hilfe. Ich glaube es funktioniert so. Zumindest muß ich nichts debuggen.

Private Sub CommandButton1_Click()
Dim wks As Worksheet
Dim rng As Range
Dim sAddress As String, sFind As String
sFind = TextBox1 & "*" ' plus Sterchen
If sFind = "" Then Exit Sub
For Each wks In Worksheets
Set rng = wks.Cells.Find(what:=sFind, _
lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
Application.Goto Reference:=Range("A1"), Scroll:=True
Range(rng.Address).Select
If MsgBox("Soll die Suche fortgesetzt werden ?", _
vbYesNo + vbQuestion, "Frage an " & _
Application.UserName & ":") = vbNo Then Exit Sub
Set rng = Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Next wks
MsgBox "Es gibt keine neue Fundstelle !", vbYes + vbInformation, _
"Dezenter Hinweis für " & Application.UserName & ":"
End Sub

Grüße aus Österreich
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige