Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Die richtige Zeile finden lassen

Die richtige Zeile finden lassen
25.03.2008 10:51:23
WIOL
Hallo.
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Die richtige Zeile finden lassen
25.03.2008 11:36:00
Tino
Hallo,
diese Code-Zeile sieht nicht gut aus.
If kaufpreis = Worksheets("raten").Cells(zeile, 1).Value "" Then Exit Do
1. auf die Schreibweise der Tabellennamen achten
2. diese Wenn- Abfrage geht so nicht.
If (kaufpreis = Worksheets("raten").Cells(zeile, 1).Value) Or _
(Worksheets("raten").Cells(zeile, 1).Value "") Then Exit Do

Gruß
Tino

AW: Die richtige Zeile finden lassen
25.03.2008 12:32:24
Tino
Hallo,
ohne jetzt deine Tabelle nachzubauen.
Mit
Do While Worksheets("Raten").Cells(zeile, 1) ""
Bleibst du also so lange in der Loop Schleife bis
Worksheets("Raten").Cells(zeile, 1) leer ist.
Somit wäre die If Abfrage mit
Worksheets("raten").Cells(zeile, 1).Value ""
sowieso unnötig, da der umgekehrte Fall in der Schleife nicht auftritt.
Also müsste der Code ungetestet so aussehen.
Do While Worksheets("Raten").Cells(zeile, 1) "" 'Schleife bis Zelle leer
'weil kaufpreis = Zelle ist verlasse die Schleife
If kaufpreis = Worksheets("Raten").Cells(zeile, 1).Value Then Exit Do
zeile = zeile + 1'Zeile hochzählen für nächste
Loop
Gruß Tino

Anzeige
AW: Die richtige Zeile finden lassen
26.03.2008 14:33:16
WIOL
Hallo.
Danke für den Hinweis. Dass ist mir auch schon aufgefallen. Dass ist aber nicht das Problem, dass ich habe, denn selbst mit der Zeile
If kaufpreis = Worksheets("raten").Cells(zeile, 1).Value "" Then Exit Do
funktioniert es, solange der Kaufpreis halt mit dem Zelleninhalt übereinstimmt.
Ich würde aber gerne die Zelle auslesen lassen, dessen Inhalt kleiner ist als der Kaufpreis, da dieser in keiner Zelle drinsteht. Vielleicht habe ich dass nur vorher zu kompliziert ausgedrückt.

AW: Die richtige Zeile finden lassen
26.03.2008 14:53:49
Tino
Hallo,
noch mal, die Zeile
If kaufpreis = Worksheets("raten").Cells(zeile, 1).Value "" Then Exit Do
Funktioniert so nicht.
Mit unten stehenden Code Ausschnitt,
zeile wird immer um eins hochgezählt, somit wäre bei nicht finden von kaufpreis
nach der Loop Schleife Cells(zeile, 1) die erste leere Zelle auf die in der Schleife
getroffen wird.
Wird kaufpreis gefunden, somit wäre Cells(zeile, 1) die Zelle in der kaufpreis steht.
Do While Worksheets("Raten").Cells(zeile, 1) "" 'Schleife bis Zelle leer
'weil kaufpreis = Zelle ist verlasse die Schleife
If kaufpreis = Worksheets("Raten").Cells(zeile, 1).Value Then Exit Do
zeile = zeile + 1'Zeile hochzählen für nächste
Loop

Gruß
Tino
Anzeige

241 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige