Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
VBA suchen in allen Tabellen
Lutz
Hallo Excel-Profis,
ich habe mir einen Code ergoogelt der in allen Tabellen sucht, klappt auch wunderbar.
Mein Problem: er soll nicht die Zielfundstelle anwählen sondern 2 Zeilen weiter oben und eine Spalte nach links.
Was muß man da ändern?
Sub Suchen_alle_Tabellen()
Dim wks As Worksheet
Dim rng As Range
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:=xlValues)
If Not rng Is Nothing Then
strAddress = rng.Address
Do
Application.Goto rng, False
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Set rng = Cells.FindNext(After:=ActiveCell)
If rng.Address = strAddress Then Exit Do
Loop
End If
Next wks
strSuch = strFind
MsgBox "Keine weiteren Fundstellen!", False, Application.UserName
Worksheets(1).Activate
Range("A1").Select
End Sub

Vielen Dank für Eure Hilfe
Gruß Lutz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Offset vom Suchergebnis
23.04.2010 18:42:18
Erich
Hi,
probier mal

Option Explicit
Sub Suchen_alle_Tabellen()
Dim wks As Worksheet
Dim rng As Range
Dim strAddress As String, strFind As String
Dim strSuch As String
strSuch = "abc"
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:=xlValues)
If Not rng Is Nothing Then
strAddress = rng.Address
Do
Application.Goto rng.Offset(-2, -1), False
If MsgBox("Weiter", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Set rng = Cells.FindNext(After:=rng)
If rng.Address = strAddress Then Exit Do
Loop
End If
Next wks
strSuch = strFind
MsgBox "Keine weiteren Fundstellen!", False, Application.UserName
Worksheets(1).Activate
Range("A1").Select
End Sub
strSuch habe ich ergänzt, da sonst nicht kompilierbar.
Es wird nicht geprüft, dass rng.Offset(-2, -1) existiert, also rng nicht in Zeile 1 oder 2 und nicht in Spalte A ist.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Offset vom Suchergebnis
23.04.2010 20:08:59
Lutz
Hallo Erich,
vielen Dank, geht wie verrückt. Ich war jetzt in der Zwischenzeit auf:
Sub Suchen_alle_Tabellen()
Dim wks As Worksheet
Dim rng As Range
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:=xlValues)
If Not rng Is Nothing Then
strAddress = rng.Address
Do
Application.Goto rng, True
ActiveWindow.SmallScroll ToLeft:=1
'ActiveCell.Offset(-2, -1).Select
If MsgBox("Weiter", vbYesNo + vbQuestion + vbDefaultButton2) = vbNo Then Exit  _
Sub
Set rng = Cells.FindNext(After:=ActiveCell)
If rng.Address = strAddress Then Exit Do
Loop
End If
Next wks
strSuch = strFind
MsgBox "Keine weiteren Fundstellen!", False, Application.UserName
Worksheets(1).Activate
Range("A1").Select
End Sub

gekommen.
Habe noch vorgegeben, das "nein" vorgegeben wird. Ich suche ein Datum und das gibt es eigentlich immer nur einmal.
Vielen Dank und ein schönes Wochenende
Gruß Lutz
Anzeige

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige