Thema: Problem mit der "find" Methode


Seite durchsuchen:
Home


zurück zur Übersicht

Diskussionsgruppe: Tabellenkalkulation

Hallo comunity,

ich versuche gerade ein such funktion in Excel 2000 zu implementieren (hab auch schon sehr viel Hilfe hier gefunden) und bin erneut an ein Problem gestoßen.

Die "find" funktion soll auch Werte finden die innerhalb eines längeren Strings sind. z.B. "Test" in "Testbericht". Wenn ich den Methodenaufbau richtig verstehe kann man das steuern duch den Parameter "LookAt" mit seinen Werten xlPart und xlWhole. Ich habe es jetzt auch in meinem Code probiert. Aber egal welchen Wert ich nehme, es macht keinen Unterschied. Ich hänge nochmal den entsprechenden Code mit an zum besseren Verständnis.

Sub Duplikate_finden()
Dim WS As Worksheet
Dim Zeile As Integer, Bereich As Integer
Dim Spalte As Integer
Dim such As String

On Error GoTo NixFind

such = _
InputBox(prompt:= _
"please enter the code you are looking for: ", _
Title:="", Default:="")
If such = "" Then
MsgBox ("searchcanceled!")
Exit Sub
Else
Debug.Print such
End If

For Each WS In Worksheets
WS.Activate
For Spalte = 1 To WS.Cells.Find("*", [A1], xlValues, xlPart, xlByColumns, xlPrevious).column ´ hier reagiert er nicht darauf wenn ich statt xlPart xlWhole schreibe

Bereich = WS.Cells(WS.Cells.Rows.count, Spalte).End(xlUp).row

For Zeile = Bereich To 1 Step -1
If WS.Cells(Zeile, Spalte) = such Then
WS.Cells(Zeile, Spalte).Select ´Gefundene Zeile wird markiert
Select Case MsgBox("Der Eintrag """ & WS.Cells(Zeile, Spalte).Value & """ befindet sich in Zelle " & WS.Cells(Zeile, Spalte).Address _
& Chr(13) & "Ist ihre Suche damit beendet?", vbYesNoCancel, "Sicherheitsabfrage...")
Case 2 ´Schaltfläche Abbruch
MsgBox ("Suche abgebrochen!")
Sheets("MainMenue").Select
Exit Sub
Case 6 ´Schaltfläche Ja
Exit Sub
Case 7 ´Schaltfläche Nein
End Select
End If
Next ´next row
Next ´next column
Next ´next sheet

MsgBox "Es wurden keine weiteren Einträge gefunden!", , "Info..."
Sheets("MainMenue").Select
Exit Sub

NixFind:
MsgBox "Es wurde kein Eintrag gefunden!", , "Info..."
Sheets("MainMenue").Select
End Sub

Von: Handybike Datum: 10.01.2007, 19:53

alle Antworten zu dieser Frage




Antwort 1 von Beverly vom 11.01.2007, 17:16
Hi,

schau mal, ob dir dieser Code weiterhilft

Sub Duplikate_finden()
Dim WS As Worksheet
Dim raZelle As Range
Dim strAdresse As String
Dim such As String
Dim loTabelle As Long
such = _
InputBox(prompt:= _
"please enter the code you are looking for: ", _
Title:="", Default:="")
If such = "" Then
MsgBox ("searchcanceled!")
Exit Sub
End If
For loTabelle = 1 To Worksheets.Count
With Worksheets(loTabelle).UsedRange
Set raZelle = .Find(such, lookat:=xlPart, LookIn:=xlValues)
If Not raZelle Is Nothing Then
strAdresse = raZelle.Address
Do
raZelle.Interior.ColorIndex = 6
Select Case MsgBox("Der Eintrag """ & raZelle & """ befindet sich in Tabelle " & Worksheets(loTabelle).Name & " Zelle " & raZelle.Address _
& Chr(13) & "Ist ihre Suche damit beendet?", vbYesNoCancel, "Sicherheitsabfrage...")
Case 2 ´Schaltfläche Abbruch
MsgBox ("Suche abgebrochen!")
Exit Sub
Case 6 ´Schaltfläche Ja
Exit Sub
Case 7 ´Schaltfläche Nein
End Select
Set raZelle = .FindNext(raZelle)
Loop While Not raZelle Is Nothing And raZelle.Address <> strAdresse
End If
End With
Next loTabelle
If raZelle Is Nothing Then MsgBox "Es wurden keine Einträge gefunden!", , "Info..."
End Sub


Bis später,
Karin

Antwort 2 von Handybike vom 17.01.2007, 21:05
HI Katrin,

danke für den Code. Der hat mir sehr geholfen. Musste aber noch eine Kleinigkeit ändern. Er meldete immer nach dreimal "nein" klicken das ein Fehler auftrat. Habe dann ein bischen herumprobiert und es hinbekommen.

Ich habe diese Zeile:
Set raZelle = .FindNext(raZelle)

geändert in:

Set raZelle = .FindNext(such)

Trotzdem herzlichen Dank

Gruß

Handybike

Antworten der Gruppe: Tabellenkalkulation
www.supportnet.de







Office 365 stellt vertraute Microsoft Office-Tools für die Zusammenarbeit und Produktivität über die Cloud bereit. So können alle ganz einfach von nahezu überall zusammenarbeiten und auf E-Mails, Webkonferenzen, Dokumente und Kalender zugreifen.

07101 07102 07103 07104 07105 07106 07107