Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Suchfunktion Bearbeiten / Weitersuchen
Innerhalb der Spalte A eines Tabellenblattes soll nach einem Begriff gesucht werden. Wurde er gefunden, so kann dieser manuell bearbeitet werden. Bei erneuter Codeausführung beginnt die Suche ab dieser Zelle.
 
 
 
 
 
Der Code für ein allgemeines Modul
 
Public Sub Suche()
'Code für ein allgemeines Modul
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Static slngRow As Long
Static sstrDefault As String
Dim strInbox As String
Dim Zelle As Range
Dim lngLast As Long
Dim Wahl As String
Dim Msg As String
 
lngLast = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
 
strInbox = InputBox("Bitte den Suchbegriff eingeben", "SUCHE", sstrDefault)
If strInbox = "" Then
    slngRow = 0
    sstrDefault = ""
    Exit Sub
      Else
    sstrDefault = strInbox
End If
 
If slngRow = 0 Then
  slngRow = 1
End If
 
Weiter:
 
With ActiveSheet.Range("A" & slngRow & ":A" & lngLast)
Set Zelle = .Find(strInbox, LookIn:=xlValues, lookat:=xlWhole)
  If Zelle Is Nothing Then
    MsgBox "Der Suchbegriff " & strInbox & " wurde nicht gefunden.", 48
    slngRow = 0
    sstrDefault = ""
    Exit Sub
  End If
 
  Msg = _
    "Die Suche nach [ " & strInbox & " ] ergab einen Treffer in Zeile " & Zelle.Row & vbCr & _
    "Du hast nun folgende Möglichkeiten:" & vbCr & vbCr & _
    "[JA]    der Datensatz kann bearbeitet werden." & vbCr & _
    "[Nein]    die Suche wird fortgeführt" & vbCr & _
    "[Abbrechen]    beendet die Suche."
 
  If Zelle.Row > slngRow Then
    slngRow = Zelle.Row
     Else
    MsgBox "Keine weiteren Treffer." & vbCr & "Die Suche ist abgeschlossen", 64
    slngRow = 0
    sstrDefault = ""
    Exit Sub
  End If
End With
 
Wahl = MsgBox(Msg, vbYesNoCancel)
If Wahl = vbNo Then
  GoTo Weiter
   ElseIf Wahl = vbCancel Then
     slngRow = 0
     sstrDefault = ""
     Exit Sub
   Else
  Zelle.Select
  Exit Sub
End If
End Sub