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

Suchen und Abgleichen

Suchen und Abgleichen
20.12.2005 10:20:21
Heinz
Guten Morgen
Ich habe eine Excelliste (Tabellenblatt "Master"), die Informationen zu Aktien enthält, unter anderen die Valorennummer.
Periodisch erhalte ich ein Liste der gehandelten Aktien, die unter anderen ebenfalls die Valorennummer enhält. Diese Liste wird formatiert und im Tabellenblatt "SAPExport" gespeichert.
Anschliessend ergänzt mein Programm die "SAPExport"-Liste mit den für SAP notwendigen Informationen anhand des Tabellenblattes "Master" bzw. des eindeutigen Kriteriums/Suchbegriffs "Valorennummer.
Dazu gehe ich in der entsprechenden Spalte des SAPExport-Blattes jede Zelle "w" durch und suche im Master-Blatt alle Zellen der entsprechenden Spalte nach einem Treffer durch (m=m+1).
Eigentlich funktioniert das Modul einwandfrei, lediglich das Laufzeitverhalten ist schlecht, d.h. bei ein paar Tausend Titeln beträgt die Wartezeit mindestens 2, 3 Minuten.
Hat jemand eine Idee, wie nachfolgender Code performanter gestaltet werden kann. Ich danke jetzt schon vielmals.
Gruss Heinz
Do While Not IsEmpty(ThisWorkbook.Worksheets("SAPExport").Cells(w, 1).Value)
Do While ThisWorkbook.Worksheets("SAPExport").Cells(w, 2).Value ThisWorkbook.Worksheets("Master").Cells(m, 2).Value
m = m + 1 'Blatt "Master" wird nach Übereinstimmung durchsucht
If IsEmpty(ThisWorkbook.Worksheets("Rechnung").Cells(m, 1).Value) Then
fondsmatch = False 'keine Übereinstimmung, d.h. neuer Titel, d.h. Blatt "Master" neue Aktientitel nachpflegen
GoTo fondfehler 'Eintrag Zeilennummer
End If
Loop
Abgleichen 'Aktientitel gefunden, die Informationen werden im Modul "Abgleichen" ergänzt
w = w + 1 'nächster Aktientitel
m = 1 'Zurücksetzung des Mastertabellenblattes
Loop

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Abgleichen
20.12.2005 11:29:36
Heiko
Hallo Heinz,
bei zwei Schleifen ineinander ist das ja auch bei tausenden Einträgen kein Wunder.
Nimm doch mal die innere Schleife raus und ersetze sie durch den .Find Befehl. Näheres siehe VBA Hilfe oder einfach Suchen mit dem Makrorecorder aufzeichnen.
.Find ist auf jeden fall schneller als deine innere Schleife.
Solche Dinge wie
Application.Screenupdating = False
Application.Calculation = xlCalculationManual
Makro
Application.Screenupdating = True
Application.Calculation = xlCalculationAutomatic
Application.Calculate
hast du ja bestimmt schon drin, oder?
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Suchen und Abgleichen
20.12.2005 14:12:53
Heinz
Hallo Heiko
Vielen Dank für Deine Antwort.
Die von Dir erwähnten Dinger "Application ..." hatte ich bereits integriert.
Es ist wahrscheinlich kein Geheimnis, dass in Excel integrierte Funktionen wie "Find" wesentlich schneller ablaufen, als explizit programmierte Schritte. Ich werde es mal mit "Find" versuchen.
Gruss Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige