Hilfe bei Code
21.06.2007 15:53:31
peschi
Benutze für eine Suchfunktion folgendes Makro:
Option Explicit
Global SSearch As String
Public Sub SearchAllTables()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean
GWeiter = False
GFound = False
anf:
SSearch = InputBox("Suchen nach:", "Search In All Tables", SSearch)
If SSearch = "" Then
End
End If
weiter:
For Each ws In Worksheets
'ws.Select
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
firstAddress = c.Address
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
Do
Set c = .FindNext(c)
secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress firstAddress And c.Address firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
Next ws
ende:
If GFound = False Then
If MsgBox("Suchwert nicht gefunden ! Neue Suche ?", vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Sie haben alle Tabellenblätter durchsucht ! Soll die Suche neu gestartet werden ?", _
_
vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
End If
End If
End Sub
Was muss ich an diesem Code umschreiben, wenn ich bei der MsgBox Weitersuchen auf Nein klicke, automatisch zum Tabellenblatt1 zurückgesprungen wird. Ebenso soll dies geschehen, wenn ich bei der MsgBox Sie haben alle Datenblätter durchsucht ! Soll die Suche neu gestartet werden Nein klicke.
Wenn ich derzeit auf Nein klicke, dann beendet er seine Suche und bleibt auf dem Tabellenblatt mit dem gefundenen Begriff stehen.
Mappe mit mehreren Tabellenblättern ( Tabellenblatt1 = Start, die anderen Tabellenblätter sind die Buchstaben von A-Z - für jeden Buchstaben ein eigenenes Tabellenblatt).
Gruß
peschi