Hilfe bei Code-Optimierung (Preisfindung)
13.10.2016 14:17:37
Lisa
ich habe mir in mühseliger Arbeit (fast einen ganzen Tag) ein kleines Makro geschrieben, das verschiedene Preise heraussucht und in eine Zelle schreibt. Das ganze passiert über mehrere Schleifen.
Das tolle - es funktioniert einwandfrei :-)
Der Nachteil: In meinem Minimalbeispiel, mit welchem ich das Makro Stück für Stück geschrieben habe, geht alles sehr schnell (nach "ausführen" quasi sofort fertig). Die Schnelligkeit in der realität ist aber SEHR SEHR langsam! Denn in der Realität wird in einer Liste mit ca. 120.000 Zeilen gesucht... Mit sehr langsam meine ich, dass ca. 5.000 Abfragen ca. 60 Minuten benötigen :-) Ich kann quasi sehen, wie die Zellen gaaaanz langsam beschrieben werden...
Daher meine Frage:
Kann man meinen Anfängercode noch tunen? Falls ja, könnt Ihr mir dabei behilflich sein?
Hier mal der Code:
Sub Preissuche()
Reihe = 4
last_Reihe = Cells(1048576, 9).End(xlUp).Row + 1
Do
Anfang = 1
Ende = 1
schluessel = Cells(Reihe, 9)
wert = Cells(Reihe, 10)
Do While Cells(Anfang, 1) schluessel
Anfang = Anfang + 1
Loop
Ende = Anfang
Do While Cells(Ende, 1) = schluessel
Ende = Ende + 1
Loop
Ende = Ende - 1
Anfang = Anfang - 1
Do
Anfang = Anfang + 1
Loop Until (Cells(Anfang, 2) = wert) Or Anfang = Ende
ausgabe_preis_1 = Cells(Anfang, 4)
ausgabe_preis_2 = Cells(Anfang, 5)
Cells(Reihe, 11) = ausgabe_preis_1
Cells(Reihe, 12) = ausgabe_preis_2
Reihe = Reihe + 1
Loop Until Reihe = last_Reihe
End Sub
Ich weiß nicht ob euch der Code alleine weiterhilft oder ihr das im Zusammenhang mit der Tabelle sehen müsst, daher hier ein Link zur Exceldatei. Hier kann man halt superschön mit den Einzelschritten sehen, wie der Code arbeitet:http://www.file-upload.net/download-12012472/ExceltabelleMITVBA.xlsm.html]ExceltabelleMITVBA.xlsm
Und falls ihr eine fremde Excel-Datei mit VBA-Code nicht öffnen wollt, hier die Datei OHNE VBA-Code, damit Ihr zumindest seht, aus welche Zellen der Code zugreift:
http://www.file-upload.net/download-12012474/ExceltabelleOHNEVBA.xlsx.html
Über Hilfe würde ich mich wirklich sehr freuen!
Herzlichen Dank!