Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
652to656
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
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zahlung dem Fälligkeitsmonat zuordnen

Zahlung dem Fälligkeitsmonat zuordnen
15.08.2005 21:25:10
Bernd
Hallo,
ich möchte eine Übersicht über meine Ausgaben erhalten. Dazu habe ich folgende Tabelle angelegt:
Spalte A: Betrag
Spalte B: erster Fälligkeitsmonat/-jahr (z.B. Oktober 2005)
Spalte C: Intervall der Zahlung (monatlich, je Quartal, ...)
Ab Spalte D folgt eine Monatskalender. Hier soll der Betrag automatisch zugeordnet werden. Wer hat hierfür eine Lösung? Danke!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlung dem Fälligkeitsmonat zuordnen
15.08.2005 23:29:49
Erich
Hallo Bernd,wenn deine Ausgabenliste so aussieht:
_|___A___|_____B_____|______C_______|________D________|
1|Betrag |Start |alle x Monate |für |
2| 500| 01.08.2004| 3|was auch immer |
3| 77| 01.05.2005| 1|Miete |
4| 1111| 01.03.2004| 12|Kfz-Versicherung |
5| 33000| 01.10.2005| |neues Auto |
dann erstellt das folgende Makro ein neues Tabellenblatt mit den Ausgaben pro Monat. Trifft das in etwa deine Vorstellungen?

Sub Ausgaben_in_Monate()
Const vonJ = 2004, bisJ = 2007
Dim jj%, mm%, zz&, Ausg As Worksheet
Set Ausg = ActiveSheet
'  ------------------------------------------- neue Monatstabelle anlegen
Worksheets.Add after:=Sheets(1)
Range("A1:C1") = Split("Jahr Monat Summe")
Rows(1).HorizontalAlignment = xlCenter
Columns("A").HorizontalAlignment = xlCenter
Columns("B").NumberFormat = "mmmm"
zz = 1
For jj = vonJ To bisJ
For mm = 1 To 12
zz = zz + 1
Cells(zz, 1) = jj
Cells(zz, 2) = Format(DateSerial(jj, mm, 1), "MMMM")
Next mm
Next jj
'  -------------------------------------- Ausgaben in Monatstab. addieren
With Ausg
zz = 1
While Not IsEmpty(.Cells(zz + 1, 1))
zz = zz + 1
mm = (Year(.Cells(zz, 2)) - vonJ) * 12 + Month(.Cells(zz, 2)) + 1
Cells(mm, 3) = Cells(mm, 3) + .Cells(zz, 1)
If .Cells(zz, 3) > 0 Then
mm = mm + .Cells(zz, 3)
While Not IsEmpty(Cells(mm, 1))
Cells(mm, 3) = Cells(mm, 3) + .Cells(zz, 1)
mm = mm + .Cells(zz, 3)
Wend
End If
Wend
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zahlung dem Fälligkeitsmonat zuordnen
16.08.2005 20:43:30
Bernd
Hallo Erich,
vielen Dank für Deine schnelle Antwort!
Leider läuft das Makro bei mir nicht ganz fehlerfrei. Die Daten werden von einem Kalender zum Teil überschrieben und das neue Arbeitsblatt ist leer.
Meine Vorstellung ist, daß sich die Beträge ab Spalte E selbst in die Tabelle einsetzen. Kannst Du mir hier helfen? Vielen Dank!
Viele Grüße nach Kamp-Lintfort
Bernd
_|___A___|_____B_____|______C_______|________D________|__E__|___F__|__G___|
|1|Betrag |Start |alle x Monate |für |Jan05|Febr05|März05
|2| 500| 01.08.2004| 3|was auch immer |
|3| 77| 01.05.2005| 1|Miete |
|4| 1111| 01.03.2004| 12|Kfz-Versicherung|
|5| 33000| 01.10.2005| |neues Auto |
Anzeige
AW: Zahlung dem Fälligkeitsmonat zuordnen
16.08.2005 23:14:39
Erich
Hallo Bernd,
"Leider läuft das Makro bei mir nicht ganz fehlerfrei." ist wohl leicht untertrieben. Wenn(!) ich dich richtig verstehe, tut das Makro überhaupt nicht das, was du möchtest.
Der Grund dafür liegt wohl in einer ziemlich unklaren Aufgabenstellung. Unter "Ab Spalte D folgt eine Monatskalender. Hier soll der Betrag automatisch zugeordnet werden." konnte ich mir nichts Konkretes vorstellen. Ich habe deshalb einen Vorschlag gemacht, der auf keinen Fall vorhandene Daten überschreibt - indem das Makro alle Ausgaben auf einem neu erstellten Tabellenblatt macht.
Deinen Satz "Die Daten werden von einem Kalender zum Teil überschrieben" verstehe ich gar nicht. Welcher Kalender überschreibt genau welche Daten, zu welchem Teil?
Und "das neue Arbeitsblatt ist leer" kann nicht sein - jedenfalls nicht, wenn das Makro gerade gelaufen ist. Zumindest die Überschriften (Jahr, Monat, Summe) stehen in Zeile A, und darunter werden 4 * 12 = 48 Zeilen angelegt, in denen die Spalten A und B mit Jahren und Monaten belegt sind. Was siehst du, nachdem du das Makro gestartet hast und es seine Arbeit beendet hat - ein leeres Blatt?
Der Tabelle in deiner heutigen Antwort habe ich etwas mehr über den "Monatskalender" ab Spalte D entnommen. Er beginnt mit "Jan 05" und endet mit "März 05". Soll er vielleicht bis zum Jahresende 2005 gehen? Oder vielleicht bis Dez. 2006?
Könnte es sein, dass du gar nicht die Summe der Ausgaben pro Monat sehen möchtest, sondern alle einzelnen Beträge, die im jeweiligen Monat fällig sind? Wäre es da nicht ein Leichtes, eine periodische Ausgabe einige Male zu kopieren, die Fälligkeiten anzupassen und dann nach den Fälligkeiten zu sortieren? Dazu bräuchte es kein Makro.
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zahlung dem Fälligkeitsmonat zuordnen
19.08.2005 21:17:21
Bernd
Hallo Erich,
es ist so, wie Du im letzten Absatz schreibst: Ich möchte die einzelnen Beträge dem Fälligkeitsmonat ab Spalte E zuordnen. Summieren muß das Makro nicht.
Da es sich um eine große Anzahl von Positionen handelt und ich eine Übersicht über mind. 10 Jahre erstellen möchte (mit der Option der Verlängerung), würde ich das gerne über ein Makro laufen lassen. Kannst Du mir noch einmal helfen?
Vielen Dank und Gruß von
Bernd
AW: Zahlung dem Fälligkeitsmonat zuordnen
19.08.2005 22:11:36
Erich
Hallo Bernd,
ich glaube, jetzt isses klar. Hier die Version 1, in der die Ausgaben unter den Monaten in der jeweils ersten freien Zeile stehen:

Sub Ausgaben_in_Monate1()
Const vonJ = 2005, bisJ = 2015
Dim jj%, mm%, zz&, sp%
'  ------------------------------------------------------ Zeile pro Monat merken
Rows(1).HorizontalAlignment = xlCenter
zz = 4
For jj = vonJ To bisJ
For mm = 1 To 12
zz = zz + 1
Cells(1, zz) = 1
Next mm
Next jj
'  -------------------------------------------- Ausgaben in Monatstab. eintragen
zz = 1
While Not IsEmpty(Cells(zz + 1, 1))
zz = zz + 1
sp = (Year(Cells(zz, 2)) - vonJ) * 12 + Month(Cells(zz, 2)) + 4
Cells(1, sp) = Cells(1, sp) + 1
Cells(Cells(1, sp), sp) = Cells(zz, 1)
If Cells(zz, 3) > 0 Then
sp = sp + Cells(zz, 3)
While Not IsEmpty(Cells(1, sp))
Cells(1, sp) = Cells(1, sp) + 1
Cells(Cells(1, sp), sp) = Cells(zz, 1)
sp = sp + Cells(zz, 3)
Wend
End If
Wend
'  ------------------------------------------------- Monate in Zeile 1 eintragen
zz = 4
For jj = vonJ To bisJ
For mm = 1 To 12
zz = zz + 1
Cells(1, zz).NumberFormatLocal = "MMM JJ"
Cells(1, zz) = DateSerial(jj, mm, 1)
Next mm
Next jj
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zahlung dem Fälligkeitsmonat zuordnen
18.10.2005 22:13:22
Bernd
Hallo Erich,
sorry für die späte Rückmeldung. Ich mußte mein Excel-Projekt ein paar Wochen ruhen lassen.
Dein Makro läuft sehr gut (ich habe die zweite Version gewählt)!
Vielen Dank dafür!
Es müßte doch nun auch möglich sein, mit kleinen Änderungen am Makro, Spalten zu tauschen:
Betrag: statt Spalte A, Spalte B
Startdatum: statt B, C
Intervall: statt C, D
Verwendung: statt D, A
Kannst Du mir hierzu noch einen kleinen Tip geben?
Vielen Dank und viele Grüße!
Bernd
AW: Zahlung dem Fälligkeitsmonat zuordnen
18.10.2005 22:13:57
Bernd
Hallo Erich,
sorry für die späte Rückmeldung. Ich mußte mein Excel-Projekt ein paar Wochen ruhen lassen.
Dein Makro läuft sehr gut (ich habe die zweite Version gewählt)!
Vielen Dank dafür!
Es müßte doch nun auch möglich sein, mit kleinen Änderungen am Makro, Spalten zu tauschen:
Betrag: statt Spalte A, Spalte B
Startdatum: statt B, C
Intervall: statt C, D
Verwendung: statt D, A
Kannst Du mir hierzu noch einen kleinen Tip geben?
Vielen Dank und viele Grüße!
Bernd
Anzeige
AW: Zahlung dem Fälligkeitsmonat zuordnen
19.08.2005 22:13:58
Erich
Hallo Bernd,
und hier die Version 2 mit den Ausgaben unter den Monaten in der Zeile, in der sie auch in Spalte A stehen:

Sub Ausgaben_in_Monate2()
Const vonJ = 2005, bisJ = 2015
Dim jj%, mm%, zz&, sp%
'  ------------------------------------------------- Monate in Zeile 1 eintragen
zz = 4
For jj = vonJ To bisJ
For mm = 1 To 12
zz = zz + 1
Cells(1, zz).NumberFormatLocal = "MMM JJ"
Cells(1, zz) = DateSerial(jj, mm, 1)
Next mm
Next jj
'  -------------------------------------------- Ausgaben in Monatstab. eintragen
zz = 1
While Not IsEmpty(Cells(zz + 1, 1))
zz = zz + 1
sp = (Year(Cells(zz, 2)) - vonJ) * 12 + Month(Cells(zz, 2)) + 4
Cells(zz, sp) = Cells(zz, 1)
If Cells(zz, 3) > 0 Then
sp = sp + Cells(zz, 3)
While Not IsEmpty(Cells(1, sp))
Cells(zz, sp) = Cells(zz, 1)
sp = sp + Cells(zz, 3)
Wend
End If
Wend
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige