VBA in Excel einbauen verkn. mit Tabellenblättern
01.07.2008 16:20:21
Calu
folgende Aufgabe stellt sich mir:
Tabellenblatt 1:
Zelle A1=Projektbeginn
Zelle A2=Laufzeit
Tabellenblatt 2:
Spalte A=Beginn (Datum)
Spalte B=Monate (Laufzeit)
Spalte C=Ende (Datum)
Spalte D=Beschreibung
Spalte E=Betrag über Laufzeit
Tabellenblatt 3:
Zeile 1=Jahreszahlen für den Betrachtungszeitraum (z.B. A1=2008, B1=2009, C1=2010 etc)
In Tabellenblatt 2 werden nun Zeilenweise die entsprechenden Felder gefüllt wie z.B.:
Beginn: Sep 08
Monate: 5
Ende: Jan 09
Beschreibung: Excel-Programmierung
Betrag: 10.000
Beginn: Okt 08
Monate: 1
Ende: Okt 08
Beschreibung: Projektmanagement
Betrag: 3.500
etc...
In Tabellenblatt 2 können max 254 Zeilen stehen ggf aber auch 3 Zeilen sein.
Projektstart: Sep 08
Laufzeit: 16 Monate
Dies ist bis hier alles gegeben.
Nun möchte ich, daß in Tabellenblatt 3 unter den Jahreszahlen die zughörigen jährlichen Beträge erscheinen. Man kann bei der Berechnung davon ausgehen, daß der Betrag/Monate immer linear verteilt werden kann.
In diesen Falle müsste in TB3 dann erscheinen:
2008 2009
11.500 2.000
Ich kann ein wenig programmieren, habe aber noch nie irgendein VBA Script in Excel eingebaut und dann noch Tabellenblättern und variierenden Zellen verknüpft. Ich denke mit dem folgenden Grundgerüst sollte zumindest die Berechnung der Ergebnisse pro Zeile funktionieren. Dies müsste dann meinem Verständnis nach pro Jahr einmal über TB 2 laufen um die jeweiligen Anteile mit einzurechnen.
Folgende Idee hatte ich:
Benötigte Variabeln:
Startdatum, Enddatum, Laufzeit, monatlicherBetrag
Diese Variablen müssen dann irgendwie per FOR ... NEXT Schleife auf die jeweilige Zeile in TB2 2 verlinkt werden
JahresEnde (Betrachtungsjahr), JahresBeginn (Betrachtungsjahr), Betrachtungsjahr
könnten statisch je Spalte in TB3
(Anmerkung: TB=Tabellenblatt)
For zähler=1 to 254
IF TB 2 Zelle A (zähler) ""
' Variablen füllen
Startdatum = TB 2 Zelle A(Zähler)
Laufzeit = TB 2 Zelle B(Zähler)
Enddatum = TB 2 Zelle C(Zähler)
Betrag = TB 2 Zelle E(Zähler)
monatlicher Betrag = Betrag/Laufzeit
' Auf die Monate bezogenes Ergebnis berechnen
IF Startdatum 'kleinergleich' Jahresbeginn & Enddatum 'groessergleich' Jahresende
Ergebnis = monatlicher Betrag x 12
END IF
IF Startdatum 'kleinergleich' Jahresbeginn & Enddatum 'kleinergleich' Jahresende
Ergebnis = monatlicher Betrag x MONAT(Enddatum)
END IF
IF Startdatum 'groessergleich' Jahresbeginn & Enddatum 'groessergleich' Jahresende
Ergebnis = monatlicher Betrag x (13- MONAT(Startdatum))
END IF
IF Startdatum 'groessergleich' Jahresbeginn & Enddatum 'kleinergleich' Jahresende
Ergebnis = monatlicher Betrag x Laufzeit
END IF
' Ergebnis zum Betrachtungsjahr in TB 3 addieren
TB 3 Zelle B1 = TB 3 Zelle B1 + Ergebnis
NEXT
Vielleicht geht das ganze ja auch irgendwie anders und viel einfacher, ich weiß jedoch nicht wie, und hab im Moment auch keine Idee, wie ich das so in Excel implementieren kann. Ich hoffe ich konnte das ganze irgendwie anschaulich erläutern. Eigentlich eine ganz einfache Addition, die jahresbezogen verrechnet.
Kann mir da jemand helfen? Wäre superfreundlich!
Beispiel Datei: https://www.herber.de/bbs/user/53500.xls
Danke und Gruß
Calu