Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
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

VB Excel 2007 - FIND extrem langsam

VB Excel 2007 - FIND extrem langsam
09.06.2009 14:23:15
Richard
Hallo Forum!
Ich hoffe es kann mir hier jemand den entscheidenden Tipp geben.
Ich habe ein Makro auf Excel 2003 geschrieben und dieses wird nun auch auf Excel 2007 verwendet.
Ein markanter Unterschied ist das Zeitverhalten des Befehles "FIND" (dies ist eindeutig bei schrittweise abarbeiten mit dem VB Editor und F8 erkennbar) .
Ich verwende ganz einfach:
Set C = .Find(ProLbl_QSNR, LookIn:=xlValues) 'Wobei ProLbl_QSNR = das Suchmuster enthält
Ich suche in einem Excelblatt in diesem Beispiel 1272 Mal in ca. 2000 Zeilen.
Ich diesem Excelblatt sind eine Menge SVERWEISE und Formeln enthalten.
In Excel 2003 ist das eine Sache von kleiner einer Minute - In Excel 2007 dauert alleine ein Find länger als die ganze Suchaktion für 1200 Mal unter Excel 2003.
Es läuft nun schon seit mehr als 2 Stunden und ist bei 242 von 1272 Vergleichen.
Ich habe die Kalk ausgeschalten:
Application.Calculation = xlManual
Was macht Excel 2007 so langsam?
Hat da wer eine Idee?
Bitte um Hilfe!
Danke!
Richard
--- ENDE ---

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VB Excel 2007 - FIND extrem langsam
09.06.2009 15:01:07
Lars
Hi,
was steht denn im With-Rahmen?
Suchbereich einschränken.
mfg Lars
AW: VB Excel 2007 - FIND extrem langsam
09.06.2009 16:01:25
Richard
Nun im With steht folgendes: (wobei ich den Code für dieses Beispiel auf das notwendigste reduziert habe)
’ Erklärungen:
’ ----------------
’ StartZeile = Suchbereich oberste Zeile
’ EndeZeile = Suchbereich unterste Zeile
’ SuchSpalte = Spalte in der gesucht werden soll
’ B_DbKSMP = Blatt in dem gesucht werden soll
’ ProLbl_QSNR = das Suchmuster enthält
’ ----------------
With Worksheets(B_DbKSMP).Range(Cells(StartZeile, SuchSpalte), Cells(EndeZeile, SuchSpalte))
Set C = .Find(ProLbl_QSNR, LookIn:=xlValues)
If C Is Nothing Then 'nicht gefunden
DaBeKSMP_Zeile_gefunden = "Nein"
Else
DaBeKSMP_Zeile_gefunden = "JA"
End If
End With
Anzeige
AW: VB Excel 2007 - FIND extrem langsam
09.06.2009 20:08:26
Lars
Hi,
der Code funktioniert nur, wenn die Tabelle Worksheets(B_DbKSMP) aktiv ist,
ansonsten ist die Referenzierung unzureichend, siehe Hilfe zu Cells.
mfg Lars
AW: VB Excel 2007 - FIND extrem langsam
10.06.2009 08:36:17
Richard
Hallo Lars!
Im Code davor steht:
Worksheets(B_DbKSMP).Select
Also an dem kann es nicht liegen...
Richard
--- ENDE ---
AW: VB Excel 2007 - FIND extrem langsam
10.06.2009 14:21:04
Richard
’Hallo!
’
’Tja, ich habe nun das File (statt XLS) als xlsm gespeichert
’ noch immer langsam
’ Einziger Vorteil: Die Datei hat statt 21,2 MB nur mehr 7,8 MB
’
’Ich hab fast alle Formeln aus dem Blatt wo ich suche durch Inhalt-Wert ersetzt
’ noch immer langsam
’
’Hat noch wer eine IDEE?
’Richard
’--- END ---
Anzeige
AW: VB Excel 2007 - FIND extrem langsam
11.06.2009 07:46:12
Tino
Hallo,
kannst Du mal eine Beispieldatei mit dem Code hochladen.
Daten und Tabellen uws. die mit dem Problem nichts zu tun haben kannst Du löschen.
Wichtig ist das der Code noch funktioniert und man mal nach einer Optimierung schauen kann.
Gruß Tino
AW: VB Excel 2007 - FIND extrem langsam
11.06.2009 13:30:40
Richard
Hallo Tino!
Das File mit dem Code werde ich asap aufbereiten und hier uploaden.
Nach weiteren 8 bis 10 Stunden Tests konnte ich den Fehler zumindest eingrenzen, aber ich verstehe die Ursache bzw. das Auftreten noch nicht und das gefällt mir gar nicht, da ich dann ja nie wirklich abschätzen kann ob der Fehler nicht einfach wieder kommt.
Was waren die Schritte der Fehleranalyse:
-----------------------------------------------------
1) Das Makro unter Excel 2003 ablaufen lassen --} schnell wie immer - mit 2007 super langsam
2) Das XLT file mit Excel 2007 aufgerufen und nur das eine Blatt in ein neues XLT (bzw. nacher auch XLSM) kopiert.
3) Ein ganz kleines Makro erstellt, dass die Suche mit FIND nachstellt
4) So lange Teile aus dem Blatt gelöscht bis es schnell war.
--} Ergebnis: Wenn man die Spalte nach er letzten verwendeten Spalte (ctrl+shift+end plus eins nach rechts) rauslöscht, wird der FIND Befehl blitzig schnell. (?!?!?!?)
--} Ich habe keine Ahnung wieso, das sind keine Formatierungen drinnen (auch keine bedingten), keine Rahmen oder Farben einfach nix...
--} Danach habe ich das Mega File nochmals neu erstellt und vor dem Teil mit dem Find nur diese Spalte rechts der letzten verwendeten Zelle gelöscht und es war schnell?
--} Es bringt aber nichts, wenn ich diese Spalte unter Excel 2003 lösche!?!
Also ich werde noch ein wenig Grundlangeforschung betreiben und dann diese Blatt mit dem kleinen Makro hier raufladen. Vielleicht übersehe ich ja irgendwas...
Ich will unbedingt hinter den Fehler kommen, da ich ihn sonst nicht vermeiden oder umgehen kann!
Richard
--- ENDE ---
Anzeige
AW: VB Excel 2007 - FIND extrem langsam
14.06.2009 21:05:07
Richard
Gut hier also das TEST FILE. Ich habe alle Daten (unter Excel 2007) entfernt außer jene der Spalte AE.
(Natürlich haben die viele Spalten, Informationen und Bedeutungen (auch bedingte Formatierungen und Formeln), aber sind nicht für diesen Test relevant!)
Ich habe alle Zellen ab der Spalte "EM" bis zum rechten ENDE gelöscht (obwohl dort nix drinnen stehen dürfte) und ausgeblednet.
Ich suche mit dem Makro eine Information "AGA1252XSEX" in Zeile 1928. (Aufrufbar über "TEST FIND" in Spalte "C")
Es dauert geschlagene 1 Minute und 36 Sekunden.
Löscht man aus diesem Blatt die Spalte EL (was auch ewig lang dauert und wo ich keinerlei Daten finden kann) dann dauert der Suchbefehl 0:00 (mit TIME messbare) Sekunden. (Die Datei hat dann auch nur mehr 2,9 statt 3,4 MB?)
Warum?
Kann die Datei hier aufgrund der Größe nicht raufladen, daher liegt diese auf einem FTP Server:
Filename: TEST_Suchen_01-36.zip (1,5 MB groß) (unzipped 3,4 MB)
Servername: ftp://ftp.kapsch.net
UserID = excel3748
Kennwort = WHdJ5t3w
(Achtung: Dieser User Account ist nur für 7 Tage gültig)
Ich hoffe es findet wer mehr als ich...
Danke!
Richard
--- ENDE ---
Anzeige
AW: VB Excel 2007 - FIND extrem langsam
14.06.2009 22:27:53
Josef
Hallo Richard,
auf deinem ftp-Server findest du die Datei x-test_suchen_01-36_1.zip.
Ist schon merkwürdig, die Spalten EM-EQ waren auf Spaltenbreite 0 eingestellt, beim Löschen von Spalte EL ist mein Excel abgeschmiert. Ich habe jetzt alle unbenutzten Spalten/Zeilen gelöscht und die Tabelle in eine neue Mappe kopiert. Jetzt läuft .Find in 0 sek. durch.
Wo der Fehler lag/liegt ist schwer zu sagen, scheint so, als sei die Datei irgendwo/wie korrupt.
Ich kann auch nicht sagen, ob der Fehler wiederkommt.
Gruß Sepp

Anzeige
AW: VB Excel 2007 - FIND extrem langsam
16.06.2009 17:01:37
Richard
Danke!
AW: VB Excel 2007 - FIND extrem langsam
16.06.2009 17:03:29
Richard
Konnte gerade nicht mehr Text eingeben...!?!?
Es funktioniert jetzt auch im Echtsystem.
Danke für die Mühe!
Richard
--- ENDE ---

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige