PDA

Vollständige Version anzeigen : Generierung einer Liste inkl. Berechnung


m0rph
28.02.2008, 10:26
Hi,

ich bin gerade dabei eine Art Cash-Flow Tabelle mit Diagramm automatisch generieren zu lassen. Hierfür habe ich folgende Werte zur Verfügung:

Startdatum
Enddatum
Monatliches Einkommen
Ausgaben zu bestimmten Monaten (3 Stck mit Betrag und Monatsangabe in MMM,JJJJ)


In einem ersten Schritt möchte ich in einer Spalte alle Monate im Format MMM, JJJJ schreiben lassen.

Als Nächstes muss ich aufgrund der Angaben von Gehalt und der best. Ausgaben den Cash-Flow berechnen lassen.

Habe ich dies geschafft, muss daraus nur noch automatisch ein Diagramm erstellt werden.

Momentan bin ich auf folgendem Stand (Nebenbei bemerkt: Ich habe keine VBA-Erfahrung & Kenntnisse):

Sub Datumsliste()

'Bereich der Daten
Dim Start_datum As Date
Dim Max_datum As Date

'Drei Daten für Zielkauf
Dim Ziel_datum1 As Range
Dim Ziel_datum2 As Range
Dim Ziel_datum3 As Range

'zugehörige Werte für Daten
Dim Ziel_wert1 As Integer
Dim Ziel_wert2 As Integer
Dim Ziel_wert3 As Integer

'Werte kopieren von Ziel
Ziel_wert1 = Worksheets("Budget-Tool").Range("H19").Value
Ziel_wert2 = Worksheets("Budget-Tool").Range("H20").Value
Ziel_wert3 = Worksheets("Budget-Tool").Range("H21").Value

'Name = (InputBox("Bitte geben Sie Ihren Namen ein:", "Namen eingeben"))
'in Zelle reinschreiben

'Werte aus Datum Start und Ende kopieren
Start_datum = Worksheets("Budget-Tool").Range("M4").Value
Ende_datum1 = Worksheets("Budget-Tool").Range("M19").Value
Ende_datum2 = Worksheets("Budget-Tool").Range("M20").Value
Ende_datum3 = Worksheets("Budget-Tool").Range("M21").Value

'Maximales Datum kopieren
If Ende_datum1 > Ende_datum2 Then
Max_datum = Ende_datum1
If Ende_datum1 > Ende_datum3 Then
Max_datum = Ende_datum1
End If
Else
Max_datum = Ende_datum3
If Ende_datum3 > Ende_datum2 Then
Max_datum = Ende_datum3
Else
Max_datum = Ende_datum2
End If
End If

'MsgBox ("Ergebnis: " & Start_datum)
'MsgBox ("Ergebnis: " & Max_datum)

'bis hier hin funktioniert alles

'Datumsbereich in Spalte schreiben
'For i = Start_datum To Max_datum
Worksheets("Schattenrechnung").Range("A8").Value = i

'Next i
End Sub


Wie schaffe ich es also Elegant:

1. die ausgelesenen Monate in eine Spalte zu schreiben
2. die Berechnung machen zu lassen (und aktualisieren zu lassen)?
3. das Diagramm danach aktualisieren zu lassen?

Würde es Sinn machen, die gesamten Eingaben durch Messageboxes machen zu lassen?

Danke schonmal!

cu

m0rph

m0rph
10.03.2008, 15:00
ach kommt schon, jemand muss doch was wissen :)

jinx
10.03.2008, 19:30
<font size="2" face="Century Gothic">Moin, m0rph,

vielleicht solltest Du eine Mappe anhängen? Was mir bis jetzt auffällt,: Du hat einen statischen Bezug der Ausgabe - Du solltest nicht mit einer festen Zellangabe arbetien, sondern mit einer Variablen (ggf. als Cells-Anweisung). Da ich aber den Aufbau Deiner Mappe nicht kenne und sich der Zielbereich der Ausgabe aus den bisher gemachten Angaben nicht ergibt, bleibt einzig Spekulation über. So z.B. könnte es umgesetzt werden:

For i = Start_datum To Max_datum
Dim lngZähler As Long
lngZähler = lngZähler + 1
Worksheets("Schattenrechnung").Cells(1, lngZähler).Value = i
Next i
Zu 2.: macht sich sicherlich besser mit Beispielmaterial
Zu 3.: Da kann der Makro-Rekorder für die Aufnahme des Codes hilfreich sein, der aber wegen der statischen Angaben auf jeden Fall überarbeitet werden sollte.</font>

m0rph
11.03.2008, 09:03
Hi,

danke für deine Antwort. Ist wohl alles bisl verwirrend. Daher ein Problem nach dem Anderen: Ich habe ja das Start- und Enddatum. Mittlerweile Habe ich auch eine Methode, die die Anzahl der Monate berechnet. Wie kann ich nun in eine fortlaufende Spalte (im Tabellenblatt "Schattenrechnung") ab Zelle A8 (A9...) die Monate fortlaufend bis zum Enddatum einschliesslich schreiben lassen?

Bsp:

Startdatum: Mrz 08
Enddatum: Dez 08

(9 Monate)

Nun soll folgendes geschrieben werden:

A8: März 2008
A9: April 2008
...
Ax: Dezember 2008

Wäre super froh, wenn mir jemand helfen könnte. Es ist arg schwierig die paar richtigen Zeilen Code zu finden.

Danke und Grüße

m0rph

m0rph
11.03.2008, 09:25
Noch eine zusätzliche Frage: Aus diesem Datumsbereich (udn ein paar weiterer Zahlen) wird ein Diagramm erstellt. Geht es überhaupt, dass dieser dynamische Bereich variables Start- und Enddatum) von dem Diagramm automatisch "erkannt" wird?

Danke

jinx
12.03.2008, 05:53
<font size="2" face="Century Gothic">Moin, m0rph,

die reale Mappe zu Deinen Fragen fehlt leider immer noch, und momentan finde ich kaum die Zeit, hier im Forum vorbeizusehen (siehe Antwortzeit für diesen Beitrag) - daher wäre ein Anhang von Dir bestimmt bei der Lösungsfindung hilfreich... ;)

Du weist doch den Bereich zu, dann wird daraus die Beschriftung für ein Diagramm abgeleitet - da ich aber nicht weiß, wie Du ein Diagramm dynamisch aufbaust (ich würde es ggf. über die Verwendung von Namen machen)...</font>

m0rph
12.03.2008, 07:42
Hi,

klar, sry :) Im Anhang ist die Excel-Datei. Den VBA-Code findest du unter "Diese Arbeitsmappe"

Im Allgemeinen soll eine finanzielle Übersicht einer Person erstellt werden. Hierfür habe ich InputBoxes für die Eingabe der Werte benutzt. Berücksichtigt nach dem aktuellen, kumulierten Guthaben (Haben - Schulden) sollen bestimmte Zielinvestitionen (Auto, Sprachreise etc) zu bestimmten Daten getätigt werden. Diese Berechnung wird in dem Tabellenblatt Schattenrechnung gemacht und als Diagramm in Budget-Tool angezeigt.

Die Berechnung in Schattenrechnung ist sehr banal und funktioniert wie folgt:
Letztendlich wird ausgehend vom gesparten Vermögen die Sparqoute jeden Monat addiert und je nach Zielinvestitionen am jeweiligen Monat abgezogen. Daraus wird das Diagramm erstellt.

Nun fehlen "nur" noch folgende Schritte:

1. Schreiben des Datumsbereich in das Tabellenblatt
2. Schreiben der restlichen Werte mit Berechnung in die anderen Spalten (inkl. Zielinvestition)
3. Erstellen des Diagramms dynamisch nach den Datumsgrenzen

Danke und Gruß

m0rph
12.03.2008, 15:28
Hi,

bin auf einem guten Weg und denke ich bekomme 1 und 2 erstmal selbst hin. Bei 3 wirds wieder spannend...