Ich habe eine Tabelle, wo ein zu einem Kaufpreis Raten zu einer bestimmten Laufzeit eines Kredites stehen. Links stehen die Kaufpreise, oben die Laufzeiten und in der Mitte die Raten. Eine normale Tabelle also. In einem anderen Tabellenblatt kann ich den Kaufpreis und die Laufzeit eingeben. Ich bin soweit, dass mir die richtige Zeile und Spalte herausgesucht wird, um die Rate herauszulesen und mir auszugeben. Das funktioniert bis jetzt nur so lange, wie der eingegebene Kaufpreis auch in der Tabelle vorhanden ist. Ich möchte jetzt allerdings, dass er mir eine neue Rate für einen Kaufpreis berechnet, der nicht in der Tabelle steht. Er soll also den neuen Kaufpreis mit den gegebenen Kaufpreisen vergleichen, die beiden Kaufpreise auswählen, die über bzw. unter dem neuen Kaufpreis liegen und mit den zugehörigen Raten die neue Rate ausrechnen. Dabei habe ich Schwierigkeiten, da entweder ein With-Block verlangt wird oder eine Objektvariable (Es erscheint, egal was ich Programmiere, der Laufzeitfehler 91). Eine weitere If-Anweisung nimmt er nicht an und mit With-Anweisungen habe ich nicht so viel Erfahrung, dass ich es effektiv hierauf anwenden kann. Hier ist schon mal der Code, der funktioniert, wenn der Kaufpreis in der Tabelle steht:
Dim laufzeit
Dim rate
Dim anzahlung
Dim pruefung
Dim zeile
Dim spalte
kaufpreis = Worksheets("Eingabe").Range("B3").Value
laufzeit = Worksheets("Eingabe").Range("B4").Value
anzahlung = kaufpreis * 0.3
Range("B6") = anzahlung
pruefung = MsgBox("Der Kaufpreis beträgt " & kaufpreis & " . Daraus folgt eine Anzahlung von " & anzahlung & " . Die Laufzeit der Ratenzahlung liegt bei " & laufzeit & " Monaten.", vbInformation, "Finanzkauf Küche")
zeile = Worksheets("Raten").Cells.Find(kaufpreis).Row
spalte = Worksheets("Raten").Cells.Find(laufzeit).Column
Do While Worksheets("Raten").Cells(zeile, 1) ""
If kaufpreis = Worksheets("raten").Cells(zeile, 1).Value "" Then Exit Do
'Hier sollen noch Anweisungen hin.
zeile = zeile + 1
Loop
rate = Worksheets("Raten").Cells(zeile, spalte).Value
Worksheets("Eingabe").Range("B5").Value = rate
MsgBox "Zeile und Spalte:" & zeile & " " & spalte
End Sub