... da ich auch so nicht weitergekommen bin, habe ich nun alles in das Blatt 1 gebastelt und mich dem zweit6en Problem gewidmet.
Dort habe ich denke ich auch den Fehler gefunden, weiß aber leider nicht, wie ich diesen behebe. Aber erst einmal der neue Code:
Sub Suchen_Click()
Dim Anzahl As Long
Dim rngFind As Range
Dim strTitel As String
Dim strFirst As String
strTitel = InputBox("Suche nach:", "Suchbegriff eingeben", , 5, 5)
Set rngFind = ActiveSheet.Cells.Find(strTitel, LookIn:=xlValues)
If Not rngFind Is Nothing Then
strFirst = rngFind.Address
Do
rngFind.Select
rngFind.Interior.ColorIndex = 10
rngFind.Font.Bold = True
rngFind.Font.ColorIndex = 2
Anzahl = Anzahl + 1
If MsgBox("Trefferanzahl: " & rngFind.Count & vbNewLine & vbNewLine & vbNewLine & Anzahl & ". Ergebnis zur Suche: '" & strTitel & "'" & vbNewLine & rngFind & vbNewLine & vbNewLine & vbNewLine & vbNewLine & "...für weitere Ergebnisse auf OK klicken" & vbLf, vbOKCancel) = vbOK Then
Set rngFind = ActiveSheet.Cells.FindNext(rngFind)
Else
Exit Sub
End If
Loop While Not rngFind Is Nothing And rngFind.Address <> strFirst
Else
MsgBox "Es wurde nichts gefunden"
End If
End Sub
Die Trefferzahl wird nicht korrekt angezeigt. Das Bild veranschaulicht nochmal das Problem (wenn man annimmt, dass alle Treffer auf dem Bild sind, sollte in der ersten Zeile der msgbox "Trefferzahl: 2" stehen):
Den Fehler habe ich wie gesagt gefunden:
Der dürfte entstanden sein, weil die msgbox vor "FindNext" steht und daher die weiteren Ergebnisse nicht mitgezählt werden.
Die Schwierigkeit liegt allerdings darin, die msgbox an einer anderen Stelle auszugeben, da ja die FindNext-Methode in diesem Fall auf dem Klick auf "OK" in der msgbox aufbaut.
Kann ich das irgendwie anders lösen?
|