VisualBasic VBA bitte um schnelle Antwort (Excel)

Gikon

Commander
Registriert
Juli 2010
Beiträge
2.062
Hi all!

Wir haben ind er Schule VBA und ich kann es sowas von garnicht. Java, HTML, CSS bin ich richtig gut drin aber an VBA scheitert es. Wir machen zur Zeit "zweiseitige Auswahl", "zählergesteuer Schleife", "Eingabe durch eine Inputbox" und "Ausgabe in eine Massagebox".

Meine letzte Arbeit konnte nicht gewertet werden, desswegen bekomem ich eienn nachschreibe Termin.

Unser Lehrer stell uns dann z.B. vollgenede Aufgabe.

Wir sollen die Zinsenrechnen von einem bestimmten Kapital aus auf eine bestimmt Zeit.
Kapital 1 ist z.B. 4000€ dann sollen wir die Zinsen darauf rechnen und dann immer wieder neu verzinsen, bis wir die Zeit durch haben. Die Zeit betrug ind er letzten Arbeit 15 jahre.

Nun komtm noch hinzu, dass Kapital 2 doppelt so hoch sein soll wie Kapital 1 aber der Zinssatz nur halb so hoch. Dann sollen wir dies rechnen lassen und in eine Tabelle anzeigen lassen und per MSGBOX ausgeben lassen.

Der Lehrer meinte, das wir eine Formel für die Jahre mit einbeziehen sollen oder so, damit der PC weiß, was er zu tun hat.



Es wäre toll, wenn ihr mir helfen könnt.
 
For-Schleife mit Jahr 1 bis 15 schreiben und nach dem Motto kap = kap + kap *zinsen die Endsumme ausrechnen.

Den zweiten Teil durchschaue ich nicht ganz. Was meinst du genau?
 
ja, wird wohl so sein und stelle dir "vollgenede Aufgabe": mach folgendes selber ansonsten du nie es begreifen/Lernen wirst....
 
@sammybj: Das 1 Kapital ist 4000€. Er soll automatisch das Kapital 2 doppelt so hoch rechnen also auf 8000€ (ka2 = ka1 * 2) denke ich mal. Den Zinssatz soll er automatisch nur halb so hoch machen also zs2 = zs1 / 2. Ich hoffe, das ich soweit richtig bin.

Könnte mir jemand mal so einen Programmcode schreiben ? Ich werde darauf dann gleich probieren eienn anderen mit anderen Ansetzen zus chreiben. Ihr seit meine einzige Hilfe, da wir keine Arbeitsblätte etc. bekommen. Google zeigt nicht das an, wa sich genau suche.


Schleife für die Jahre:

For i = 1 to 15
jahr = jahr + 1
Next


Ich hoffe, dass ale meine Formel hier richtig sind.
 
Also am besten ist selber ausprobieren...

Das erste hast du hinbekommen?

Anzatz für die zweite: DoWhile-Schleife mit Kapital 2 als Abbruchkriterium und deinem Jahreszähler in der gleichen Schleife
 
Geht auch... dann:

dim kap as double
dim kap2 as double
dim zs2 as double
dim jahr as integer

kap = 4000
kap2 = 2*kap
zs2 = bla
jahr = 0

for kap <= kap2 do
kap = kap + kap*zs2
jahr = jahr + 1
next
msgbox(kap, jahr) ' da bin ich mir gerade nicht so sicher.

end function ' oder was auch immer.

Allerdings: Google und selber überlegen hilft auch meistens...
 
OK. Ich versuche mal einen zu schreiben und werde ihn hier dann posten. Könntet ihr ihn dann auf Fehler überprüfen ? Er wird wohl nicht auf anhieb funzen ^^
Ergänzung ()

Private Sub BSF_Rechnen_Click()

Dim ka, ka2, zs As Double
Dim jahr As Integer

ka = Val(InputBox("Bitte geben Sie ein Kapital ein: "))
zs = Val(InputBox("Bitte geben Sie ihren Zinssatz ein: "))

For ka = 1 To 15
ka = ka + ka * zs
jahr = jahr + 1
Next

MsgBox ka, jahr

End Sub




Er rechnet das noch nicht für 15Jahre aus und ich denke auch, das er das nicht wieder neu verzinst und das die zinsrechnung falsch ist.
Ergänzung ()

Ich probiere es die ganze Zeit aber der will nichts richtig machen. Der gibt immer das falsche Ergebnis.
 
so, du musst in der for-schleife die Jahre reinschreiben - nicht das Kapital
Ergänzung ()

Button auf der Excel-Mappe einfügen und Quelltext kopieren..., falls du bis jetzt nicht schon eine eigene Lösung gefunden hast.
Private Sub CommandButton1_Click()

Dim ka, ka2, zs, zs2 As Double
Dim jahr As Integer

ka = 4000
zs = 0.02

For jahr = 0 To 14
ka = ka + ka * zs
Next
MsgBox (jahr)
MsgBox (ka)


'------------------
ka = 4000
ka2 = 2 * ka
zs2 = 0.5 * zs
jahr = 0

For ka = ka To ka2
ka = ka + ka * zs2
jahr = jahr + 1
Next
MsgBox (jahr)
MsgBox (ka) ' Das Kapital liegt etwas höher, besser eine while-Schleife.

'-----------------
ka = 4000
ka2 = 2 * ka
zs2 = 0.5 * zs
jahr = 0

Do While ka < ka2
ka = ka + ka * zs2
jahr = jahr + 1
Loop
MsgBox (jahr)
MsgBox (ka)

End Sub
 
Danke dafür. Ich habe mir es jetzt angeschaut und ich probiere momentan noch rum. Das Programmw eicht leider etwas ab. Ich kann es fast ganz korrigieren. Bei einer Sache brauche ich allerdings Hilfe. Er soll genau 2 Ergebniss ausgeben. Er soll aber alle Ergebnisse in eine Tabelle eintragen. Wie man das mit der Tabelle macht, weiß ich. Wie müsste ich das Programm umschreiben, damit er mir das neue Kapital nach 15 Jahren anzeigt (von Kapital 1 aus) und wie müsste ich das gleich bei Kapital 2 machen ?

Ich habe jetzt 4 Stunden lang gebüffelt und bin schon soweit gekommen, das ich jetzt so ziemlich alles verstehe. Das umsetzen folgt.
 
Zurück
Oben