Hallo Forumsmitglieder,
ich als Anfänger möchte gerne ein Makro programmieren. Allerdings bin ich sehr schnell auf meine Grenzen gestoßen. Ich habe im Internet recherchiert, ein paar Ansätze gefunden, komme nun leider nicht weiter. Ich habe folgendes Problem:
Ich möchte einen Mittelwert bilden aus einer Messreihe/Zeitreihe, die sich jeden Monat um einen Zahlenwert erweitert. Der Mittelwert soll auf Basis der drei Werte der letzten drei Monate berechnet werden. Der Mittelwert wird von Monat zu Monat neu berechnet, da er sich immer nur aus den letzten drei vorangegangenen Zahlenwerte der letzten drei Monate berechnen soll. Was ich damit genau meine, zeigt das folgenden Beispiel:
Januar = 1, Februar = 2, März 3 ---> 1. Mittelwert = 2, da (1+2+3)/3 = 2
danach wird in der Messreihe der Monat Apirl bei der Ermittlung des Mittelwertes eingeschlossen, der Januar dagegen ausgeschlossen:
Februar = 2, März = 3, April = 4 ---> 2.Mittelwert = 3, da (2+3+4)/3 = 3
danach wird der Messreihe der Monat Mai bei der Ermtillung des Mittewlertes eingeschlossen, der Februar dagegen entfällt:
März = 3, April = 4, Mai = 5 ---> 3.Mittelwert = 4, da (3+4+5)/3 = 4.
Die Mittwelwerbildung rolliert also von Monat zu Monat. Ich möchte, dass ich jeden Monat ein Mal auf einen Makrobutton draufklicke und der neue Mittelwert nach dem Prinzip oben gebildete wird.
Ich weiß leider nicht, wie ich das in VBA umsetzen soll. Vermutlich muss ich hier mit dem Befehl:
"Selection.Offset(, 1).Select" und einer Schleife arbeiten. Das Verschieben des markierten Zellbereichs auf die drei neuen Monatswerte funktioniert einmalig. Wenn ich das in Verbindung mit einer Schleife probiere, dann klappt das nicht. Mein Problem ist, dass der um einen Monat verschobene Zellbereich nach "Selection.Offset(, 1).Select" nicht als Ausgangspunkt genommen wird für die nächste Verschiebung des Zellbereiches um einen Monat, sondern wieder der zu aller erst ausgewählte Zellbereich, der aus den aller ersten drei Monate besteht. Sicher scheitert es auch noch anderen Stellen, von denen ich aber noch nichts weiß, weil ich so weit noch nicht gekommen bin :D
Meine Versuche selbst darauf zu kommen, sind bisher aller glänzend gescheitert. Könnte mir bitte jemand helfen?
Grüße in den Cyberspace!
Julian
|