Ich verzweifele an folgender Aufgabe:
Die Eingabe einer Zahl in ("Tabelle 1") möchte ich in einer Liste in ("Tabelle 2") suchen, finden und im Verlauf der Trefferzeile einen Text vermerken. Das klappt hiermit auch schon ganz gut:
(...)
Dim SUCHE
SUCHE = Sheets("Tabelle1").Range("C2")
If SUCHE = "" Then
MsgBox ("Bitte Zahl eingeben")
Exit Sub
Else
End If
Sheets("Tabelle2").Activate
Columns("A:A").Find(What:=SUCHE, _
After:=Range("A1"), _
Lookat:=xlWhole, LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
With ActiveCell.Offset(0, 7)
.Value = "Eingegeben von " & Application.UserName & " am " & Date
.Font.ColorIndex = 3
.Font.Bold = True
End With
(...)
Wenn die Zahl allerdings nicht in der Liste enthalten ist, erscheint :
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt.
Ich habe gebastelt ... dieser Einschub funzt jedenfalls nicht:
If Not (SUCHE Is Nothing) Then
MsgBox ("Die Zahl ist in der Liste nicht vorhanden.")
Exit Sub
End If
Was mache ich falsch? Wie kann ich festlegen, dass eine MsgBox erscheint, wenn FIND nix findet?
*****
Und dann habe ich - sorry - noch eine Frage an die Experten:
Für den FIND-Befehl aktiviere ich zuerst "Tabelle2", nach der Suche springe ich anschließend wieder in "Tabelle1". Kann ich die Suchfunktion nicht auch im Offset ausführen lassen?
Dieser dumme Versuch klappt jedenfalls nicht:
Sheets("Tabelle1").Columns("A:A").Find(What:=SUCHE, _
Danke für jedwede Hilfe
sagt
Oliver