Makro schneller rechnen lassen?
#1
Hallo zusammen,

ich hab ein Makro erstellt (in der hier angehängten Datei hinterlegt), das an sich die Ergebnisse liefert die ich auch erwartet habe. Konkret wird ein Zahlungsverlauf über 30 Jahre (analog: Spalte D) 10000 mal simuliert (Spalte F). "Problem" ist aber, dass Excel gut 10 Minuten braucht, um die Simulation durchzuführen (also eine gefühlte Ewigkeit :D). Kann sich mal jemand das der Schaltfläche "SIMULATION 10000" zugewiesene Makro anschauen? Dieses heißt SIMULATION10000NR2. Diese erstellten Codes die im Makro sehen für mich als Laien nicht spektakulär aus, bzw. sind diese auch nicht sehr lang...deshalb denk ich dass es hier wenig Optimierungspotenzial gibt...

Als Laie will ich mich dafür aber nicht festlegen, sodass ich das Thema mal hier in die Runde stelle...hoffe dass was brachbares bzw. besseres dabei rauskommt :)

Danke schon mal vorab.


Angehängte Dateien
.xlsm   Hilfe.xlsm (Größe: 285,71 KB / Downloads: 9)
Top
#2
Nochwas: es geht hier um das was im Reiter "Tabelle 1" steht.
Top
#3
Hi,

besser wäre es, das Makro hier als Text einzustellen, das Öffnen der Datei ist ja unmöglich!!!!!!!!!!!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#4
Ich habe die Datei mit LO und der Nachfrage, ob Makros aktiviert werden, geöffnet. Noch bevor ich Makros deaktivieren konnte, wurden 3 neue, leere LO-Dateien angelegt. D.h. ein Makro muss gestartet sein.

In den allgemeinen Module steht etwas vba-code, aber eigentlich nur Schrott.

Um das Herunterladen von Code zu verhindern, sollte man das WLan deaktivieren.
Top
#5
Tja werde VBA hoffentlich nur in dieser Datei und nie wieder benötigen ...

Habe ein Screenshot der Datei angehängt, ist vllt besser als die Excel-Datei zu laden...

Hier das Makro:


Sub SIMULATION10000NR2()
'
' SIMULATION10000NR2 Makro
' Simuliert Zahlungsstrom von 30 Jahren 10000 mal
'

'
    Range("E2:F10001").Select
    ActiveWindow.ScrollRow = 9781
    ActiveWindow.ScrollRow = 9232
    ActiveWindow.ScrollRow = 7861
    ActiveWindow.ScrollRow = 7359
    ActiveWindow.ScrollRow = 6330
    ActiveWindow.ScrollRow = 5850
    ActiveWindow.ScrollRow = 5370
    ActiveWindow.ScrollRow = 3611
    ActiveWindow.ScrollRow = 2194
    ActiveWindow.ScrollRow = 1806
    ActiveWindow.ScrollRow = 1532
    ActiveWindow.ScrollRow = 1189
    ActiveWindow.ScrollRow = 937
    ActiveWindow.ScrollRow = 389
    ActiveWindow.ScrollRow = 183
    ActiveWindow.ScrollRow = 138
    ActiveWindow.ScrollRow = 1
    Application.CutCopyMode = False
    Selection.Table ColumnInput:=Range("W1")
    Range("O33").Select
End Sub


Angehängte Dateien Thumbnail(s)
   
Top
#6
Hi,

das Makro kann nicht die Ursache sein, das macht nämlich nichts, außer das Fenster zu scrollen, ist also überflüssig.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#7
(07.01.2018, 23:58)BoskoBiati schrieb: Hi,

das Makro kann nicht die Ursache sein, das macht nämlich nichts, außer das Fenster zu scrollen, ist also überflüssig.

Naja mit dem Makro, das ja der Schaltfläche zugewiesen ist, werden neben dem Scrollen auch die ganzen Simulationen (10000) durchgefüht (Spalte F), sodass hier hier wohl davon ausgehen muss dass es rein aufgrund der Anzahl der Simulationen so lange braucht....
Top
#8
Hi,



Code:
werden neben dem Scrollen auch die ganzen Simulationen (10000) durchgefüht (Spalte F)


wo, wie?????

es fehlt den Makros auf jeden Fall eine Referenzierung zu einer Tabelle!
Wahrscheinlich sind Deine dämlichen Zufallszahlen der Grund für die Probleme!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#9
Habe die Vorgehensweise aus einem YouTube-Video übernommen und bin folgendermaßen vorgegangen:

1) Makroaufnahme Starten
2) Wert aus D32 in F2 übernommen            (D32 ist die Summe der Zahlungen in den 30 Jahren (von D2 bis D31))
3) D2 und F2 gleichzeitig markiert (gemäß diesem Video), und die 10000 darunterliegenden Zellen markiert (d.h. bis D10001 und F10001)
4) Daten --> Was Wäre Wenn --> Datentabelle --> Werte aus Zeile: leer gelassen; Werte aus Spalte: irgendeine (leere!) Zelle, in dem Fall W1
5) OK geklickt
6) gewartet
7) Makro beendet

Hoffe das bringt jemanden weiter...
Top
#10
Hi,

schmeiß mal die Zufallszahlen raus!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste