Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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
Inhaltsverzeichnis

Hilfe bei Code-Optimierung (Preisfindung)

Hilfe bei Code-Optimierung (Preisfindung)
13.10.2016 14:17:37
Lisa
Hallo zusammen,
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!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Code-Optimierung (Preisfindung)
13.10.2016 14:38:36
Daniel
Hi
bei dieser Datenmenge musst du so vorgehen:
1. bilde in einer Hilfsspalte einen einheitlichen Schlüssel aus Artikel und Menge
2. sortiere die Liste nach diesem Mengenschlüssel aufsteigend
3. mache die Suche über den SVerweis mit 4. Parameter = WAHR
aufgrund der Sortierung verwendet dieser eine andere Sortiermethode, welche bei größeren Datenmengen wesentlich schneller ist, als die Liste von oben nach unten zu durchsuchen.
https://www.herber.de/bbs/user/108758.xlsx
Btw, dieses Forum hat eine für jeden zugängliche Uploadfunktion für Dateien bis 300kb. Nutze bitte diese und vermeide die Kommerziellen Uploadseiten.
Gruß Daniel
Anzeige
AW: Hilfe bei Code-Optimierung (Preisfindung)
13.10.2016 14:57:02
Lisa
Mensch Daniel, ich fasse es nicht :-o
Du bist ja krass!!
1. Ich dachte, ich bekomme das mit normalen Excel-Formeln nicht mehr hin und muss daher VBA verwenden und
2. wie schnell hast DU die Lösung denn bitte verständlich für mich aufbereitet!
HERZLICHEN DANK, ich habe verstanden wie du vorgegangen bist!
Zur Upload-Funktion: Ich wollte die tatsächlich mit der Upload-Funktion zu Verfügung stellen, aber meine Dateien konnte ich im Auswahldialog nicht auswählen, weil sie grau waren... Sehr komisch, muss ich beim nächsten mal genauer darauf achten!
Noch einmal:
Ich danke dir!
Schöne Grüße
Lisa
Anzeige
AW: Hilfe bei Code-Optimierung (Preisfindung)
13.10.2016 15:12:27
Daniel
Hi
naja, normal, ich arbeite halt öfters mit so Datenmengen, da ist der SVerweis mit 4. Parameter = Wahr eine vielgenutze Funktion.
Beim Hochladen gibt's einige Punkte die du beachten musst (z.B. keine Leerzeichen im Dateinamen).
Diese sind aber auf der Seite alle beschrieben.
Gruß Daniel
AW: Hilfe bei Code-Optimierung (Preisfindung)
13.10.2016 15:33:31
Luschi
Hallo Lisa,
hier mal eine passende Vba-Variante
- ohne Sortierung und
- ohne Hilfsspalte
https://www.herber.de/bbs/user/108762.xlsm
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige