ich habe folgende (zu mindest für mich) Herausforderung zu lösen:
Ich möchte in einer Excel-Datei mit 5 Datenblättern (a,b,c,d,e) eine Suchfunktion einbauen. Die Suchfunktion soll in jedem Blatt alle Zellen durchleuchten und jeweils bei Erfolg anzeigen. Nach Anzeige der Zelle soll die Abfrage starten ob weitergesucht werden soll. Falls nichts gefunden wird soll die Anzeige "'Suchbegriff' nicht gefunden" ausgespuckt werden.
Diese Suchfunktion soll per Knopfdruck starten und befindet sich auf dem ersten Datenblatt (a). Für die Abfrage habe ich ein Makro geschrieben/ gebastelt, komme jetzt aber nicht mehr weiter (Fehlermeldung: Fehler beim Kompilieren - IF Block ohne END-IF)
Anbei mein bisher vollbrachtes Werk:
Sub Suchen()
Dim Eingabe As String
Dim Feld As Range
Dim Gefunden As Boolean
Dim Antwort As Long
[A1].Select
Eingabe = Application.InputBox("Bitte Suchbegriff eingeben", "Suche", "Suchbegriff")
If Eingabe <> "" Then
For Each Feld In ActiveSheet.UsedRange
If InStr(UCase(CStr(Feld.Value)), UCase(Eingabe)) > 0 Then
Gefunden = True
Feld.Select
Antwort = MsgBox("Weitersuchen?", vbQuestion + vbYesNo)
If Antwort = vbNo Then
Exit For
End If
End If
Next Feld
If Gefunden = False Then
For Each Feld In sheets("b").UsedRange
If InStr(UCase(CStr(Feld.Value)), UCase(Eingabe)) > 0 Then
Gefunden = True
Feld.Select
Antwort = MsgBox("Weitersuchen?", vbQuestion + vbYesNo)
If Antwort = vbNo Then
Exit For
End If
End If
Next Feld
If Gefunden = False Then
For Each Feld In sheets("c").UsedRange
If InStr(UCase(CStr(Feld.Value)), UCase(Eingabe)) > 0 Then
Gefunden = True
Feld.Select
Antwort = MsgBox("Weitersuchen?", vbQuestion + vbYesNo)
If Antwort = vbNo Then
Exit For
End If
End If
Next Feld
If Gefunden = False Then
For Each Feld In sheets("d").UsedRange
If InStr(UCase(CStr(Feld.Value)), UCase(Eingabe)) > 0 Then
Gefunden = True
Feld.Select
Antwort = MsgBox("Weitersuchen?", vbQuestion + vbYesNo)
If Antwort = vbNo Then
Exit For
End If
End If
Next Feld
If Gefunden = False Then
For Each Feld In sheets("e").UsedRange
If InStr(UCase(CStr(Feld.Value)), UCase(Eingabe)) > 0 Then
Gefunden = True
Feld.Select
Antwort = MsgBox("Weitersuchen?", vbQuestion + vbYesNo)
If Antwort = vbNo Then
Exit For
End If
End If
Next Feld
If Gefunden = False Then
MsgBox "'" & Eingabe & "' nicht gefunden!", vbInformation
End If
End If
End Sub