Finanzplan / Kontenplan mit VB

Hallo ihr vielen Programmierer-Spezies,

bis jetzt hab ich immer nur n bisschen mit Excel-Funktionen hantiert, aber jetzt möchte ich einen Kontoplan erstellen, der sich mit den 0815-Formeln nicht mehr realisieren lässt.

Wie gesagt, es soll ein Kontoplan werden.
Im Tabellenblatt 1 habe ich eine Eingabe eingerichtet. D.h.
B3= Datum der Bewegung
D3= Bemerkung
F3= Betrag der Bewegung
H3= Konto der Bewegung

Nun möchte ich, das die Werte anhand des Wertes in H3 in das entsprechende Tabellenblatt eingetragen werden. Z.b. Wert 1 = Sparkasse (=Tabellenblatt 2), Wert 2 = Volksbank (=Tabellenblatt 3) usw.
Das klappt bis jetzt sehr gut.
Auch die Funktion der anschließenden Sortierung habe ich noch hinbekommen.
(D.h. wenn ich eine Bewegung am 01.06. habe und eine am 01.03 die ich im später eintrage, dann ist es in der richtigen zeitlichen Reihenfolge in den entsprechenden TBlättern sortiert.)

Mein Problem: In den Tabellenblättern möchte ich in der Spalte B den aktuellen Kontostand sehen.
Nur nach dem Sortieren muss er dementsprechend jede Zelle B die nach dem neu eingetragenen Datum liegt aktualisieren/neu berechnen.

So solls aussehen:

1 2 3 4
A 01.01.2009 100,-€ Anfangsbestand 0,-€
B 02.02.2009 A2+B4 Bewegung #1 5,-€
C …

Hier mein derzeitiger Code:

Sub Daten\_eintragen()  
Dim Zeile  
Dim Zeilr  
'nur wenn in B3 und D3 etwas drinsteht dann eintragen  
If [b3] "" And [d3] "" Then  
'Tabellenblatt ermitteln  
If [h3] = "1" Then  
Sheets("SPK").Select  
'letzte benutzte Zeile ermitteln + 1  
Zeile = Cells(Rows.Count, 1).SpecialCells(xlLastCell).Row + 1  
Zeilr = Cells(Rows.Count, 1).End(xlUp).Row  
'Daten eintragen  
Cells(Zeile, 1) = Sheets("Eingabe").Range("b3").Value  
Cells(Zeile, 2) = Cells(Zeilr, 2) + Sheets("Eingabe").Range("f3").Value  
Cells(Zeile, 3) = Sheets("Eingabe").Range("d3").Value  
Cells(Zeile, 4) = Sheets("Eingabe").Range("f3").Value  
Cells(Zeile, 5) = Sheets("Eingabe").Range("h3").Value  
  
'Sortieren  
Range(Cells(1, 1), Cells(Rows.Count, 5)).Sort \_  
Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, \_  
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, \_  
SortMethod:=xlPinYin, DataOption1:=xlSortNormal  
  
  
'Eingaben löschen  
Sheets("Eingabe").Select  
[b3] = ""  
[d3] = ""  
[f3] = ""  
[h3] = ""  
'letzte Zeile in sichtbaren Bereich holen  
Cells(Zeile, 1).Select  
Else  
'Tabellenblatt ermitteln  
If [h3] = "2" Then  
Sheets("2.VoBa").Select  

Habt Ihr ne Idee oder Verbesserungs-/Vereinfachungsvorschlägen?

Vielen Dank im Voraus!

DasBinIch132

Hallo,
ich habe es nicht nachgeprüft, aber ich denke mal solange er nicht neu sortieren muss funktioniert Dein Code, oder (d.h. der Betrag wird richtig ausgewiesen)? Du musst auf jeden Fall nach dem Sortieren für alle(!) Zeilen die Berechnung neu anschmeissen. Am einfachsten machst du dies in einer Schleife, z.B.
'Starte in Zeile 2, da in zeile 1 Anfangsbestand steht und dieser nicht verändert wird
for i=2 to zeile
'AktuelleZeile_SpalteB = Wert_darüber + Wert_Bewegung
Cells(i, 2) = Cells(i-1, 2) + Cells(i,4)
next i

Grüße

Hallo DasBinich132,

leider kann ich dir nicht weiterhelfen.

Ich wünsche dir trozdem ein frohes Weihnachtsfest und einen guten Rutsch ins neue Jahr.

Tschüß

PeterPlauen

Hallo und Tschuldigung!

Ich habe eben erst gesehen, dass ich eine Anfrage offen hatte.

ich hoffe, das Problem ist gelöst?

Schöne Grüße

Hermann Leopold