Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Fortlaufende Suche unter Vermeidung eines Laufzeitfehlers

Gruppe

Suchen

Problem

Wie kann ich einen Tabellenbereich nach einem bestimmten Begriff durchsuchen? Wird der Begriff nicht gefunden, soll ein Laufzeitfehler vermieden, wird er gefunden, soll die Suche fortgesetzt werden.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.

StandardModule: basMain

Sub Auswahl()
   Dim rng As Range
   Dim sSearch As String, sAddress As String
   Range("A1").Select
   sSearch = InputBox(prompt:="Bitte Suchbegriff eingeben:")
   If sSearch = "" Then Exit Sub
   Set rng = ActiveSheet.Columns("A:F").Find( _
      what:=sSearch, lookin:=xlValues, lookat:=xlWhole, _
      searchorder:=xlByRows)
   If rng Is Nothing Then
      Beep
      MsgBox prompt:="Suchbegriff nicht gefunden!"
      Exit Sub
   End If
   sAddress = rng.Address
   MsgBox rng.Address(False, False)
   While ActiveCell.Address <> sAddress
      Set rng = Cells.FindNext(After:=rng)
      If rng.Address = sAddress Then Exit Sub
      MsgBox rng.Address(False, False)
   Wend
End Sub