|
Laufzeit eines Makros abhängig von der Dateigröße?
|
| Autor |
Nachricht |
Matthias12345
eifriger und dankbarer Nutzer
Verfasst am: 20. März 2008, 09:21 Rufname:
Wohnort: Karlsruhe
|
|
| Version: Office 2k (2000) |
|
Hallo
ich habe ein Makro geschrieben, das vermutlich nicht optimal programmiert ist und deshalb relativ lang braucht.
Diesmal scheint es besonders lang zu gehen, obwohl die Anzahl der Zellen, die überprüft werden gar nicht so groß ist wie schon wann anders mal, wo es (subjektiv) nicht so lang ging.
Kann es daran liegen, dass die Datei allgemein größer ist? (andere Tabellenblätter)
Hat die Anzahl offener Exceldateien einen Einfluss auf die Laufzeit?
Gruß,
Matthias
|
|
RO_SCH
Gast
Verfasst am: 20. März 2008, 13:20 Rufname:
|
| |
| Version: Office 2k (2000) |
|
Hi Matthias,
... lass mich mal schnell in meine Kristallkugel ...
Scherz beiseite - ohne zu wissen, was dein Makro genau ausführt oder was es nicht machen soll, werden wir das nie ergründen.
Gruß Roland
|
|
maninweb
VBA Professional & More

Verfasst am: 20. März 2008, 14:39 Rufname: maninweb
Wohnort: Herzogenrath
|
|
| Version: Office 2k (2000) |
|
Hi Matthias12345...
beschreibe doch mal genauer, was Dein Makro macht. Andere Dateien haben
i.d.R. weniger Einfluss auf die Ablaufgeschwindigkeit. Eher sind korrekte Objekt-
adressierungen und vernünftige Variablendeklarationen wichtig. Ausserdem sollten
Activate und Select Anweisungen sparsam verwendet werden.
Gruß
_________________ Der größte Aberglaube der Gegenwart ist der Glaube an die Vorfahrt.
Jacques Tatischeff - auch bekannt als Jacques Tati
|
|
Matthias12345
eifriger und dankbarer Nutzer
Verfasst am: 20. März 2008, 14:48 Rufname:
Wohnort: Karlsruhe
|
|
| Version: Office 2k (2000) |
|
also gut, mein makro macht das, was man mit Access mit einer Kreuztabelle macht (hab ich mir sagen lassen).
Ich habe eine SAP-Ausgabe mit allen Arbeitsplänen.
da steht dann in einer Spalte die Artikelnummer und in der anderen der Arbeitsgang
0815 - 1
0815 - 2
0815 - 3
0815 - 4
4711 - 1
4711 - 2
4711 - 3
usw
ich formatiere sie um in dem ich eine For-Schleife drüberlaufen lasse, die mir im Endeffekt ein Ergebnis ausspuckt das so aussieht:
0815 - 1 - 2 - 3 - 4
4711 - 1 - 2 - 3
usw.
Drin stecken noch ein paar verschachtelte If-Abfragen, weil es Sonderfälle gibt, die ich nicht haben will. Ich vermute mal die machen es langsam (ich habe das auch nicht elegant gelöst).
Aber ich dachte, vielleicht haben auch andere Sachen Einfluss. Wenn ich im Task-Manager anschau, wieviel Speicherpaltz er belegt, dann standen da halt 30 MB, vermutlich der Speicher, den alle Excelsheets die grad offen waren belegt haben. Da dachte ich, vielleicht hievt er die bei der Makroausführung irgendwo immer mit.
Gruß,
Matthias
PS: um euch nicht nur in die Kristallkugel schauen zu lassen hier noch der Code. Schaut ihn euch nicht an.
afk1 = Sheets("baeh").Cells(1, 1).Value
afk2 = Sheets("baeh").Cells(2, 1).Value
afk3 = Sheets("baeh").Cells(3, 1).Value
wertAlt = Sheets("Tabelle1").Cells(2, 1).Value
Sheets("Tabelle2").Cells(1, 1).Value = wertAlt
Zeile = 1
Spalte = 2
ende = 65536 'Sheets("Tabelle1").Range("A65536").End(xlUp).Row
For i = 2 To ende
wertNeu = Sheets("Tabelle1").Cells(i, 1).Value
If wertNeu <> wertAlt Then
wertAlt = wertNeu
Zeile = Zeile + 1
Spalte = 2
Sheets("Tabelle2").Cells(Zeile, 1).Value = wertAlt
End If
If Sheets("Tabelle1").Cells(i, 2).Value <> Sheets("Tabelle1").Cells(i - 1, 2).Value Then
If Sheets("Tabelle1").Cells(i, 2).Value <> afk1 And Sheets("Tabelle1").Cells(i, 2).Value <> afk2 And Sheets("Tabelle1").Cells(i, 2).Value <> afk3 Then
'ineffiziente methode um afks rauszufiltern. aber egal
Sheets("Tabelle2").Cells(Zeile, Spalte).Value = Sheets("Tabelle1").Cells(i, 2).Value
Spalte = Spalte + 1
End If
End If
Next
|
|
Zwickel
Im Profil kannst Du frei den Rang ändern
Verfasst am: 20. März 2008, 15:08 Rufname: Bernd
Wohnort: Zwickau
|
|
| Version: Office 2k (2000) |
|
Hi Matthias,
Du schreibst, dass es gar nicht so viele Zellen sind.
Deine Schleife läuft aber von 2 bis 65536 das dauert!
ende = 65536 'Sheets("Tabelle1").Range("A65536").End(xlUp).Row
_________________ Gruß Bernd
verwende Excel 2003
|
|
Matthias12345
eifriger und dankbarer Nutzer
Verfasst am: 20. März 2008, 16:13 Rufname:
Wohnort: Karlsruhe
|
|
| Version: Office 2k (2000) |
|
Schon richtig.
es sind 65000 Zellen.
Aber ich habe das heute morgen durchlaufen lassen.
Da ging es um 10 Minuten oder so. Ich hab mich sehr gewundert (weil ich es schneller in Erinnerung hatte) und mal mit Strg+Pause unterbrochen und geschaut wie weit er ist und dann wieder nach 10 Sekunden und dann war er 40 Artikelnummern weiter, also vielleicht 250 Zeilen.
Heute nachmittag hab ich es laufen lassen, da ging es vielleicht ne halbe Minute.
Mir geht es nicht darum, dass ich viele Zellen überprüfe und es entsprechend lang dauert, das ist klar, aber woher kommt es dass es manchmal sich schier nicht mehr einkriegt?
Gruß,
Matthias
|
|
bernd200
Im Profil kannst Du frei den Rang ändern
Verfasst am: 20. März 2008, 18:09 Rufname: Bernd
Wohnort: Böblingen
|
| |
| Version: Office 2k (2000) |
|
Hallo Matthias,
nach 10 min würde ich auch ungeduldig werden.
Hast du die üblichen "Beschleuninger" drin?
| Code: |
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dein Code
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
|
_________________ Gruss, Bernd
____________________________
Kaum macht man es richtig, schon funktioniert es ...
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
| |

|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Excel VBA (Makros): Vorlage öffnen, xls-Dateiname abhängig von Inputbox |
1 |
Roliviech |
150 |
19. Apr 2010, 21:21 Amicro2000  |
 |
Excel VBA (Makros): Togle Buttons voneinander abhängig machen |
9 |
Sodala |
111 |
26. Feb 2010, 20:57 Sodala  |
 |
Excel Formeln: Nachfolgende Zellen sollen sich abhängig vom wert färben |
1 |
germanb |
217 |
06. Dez 2009, 10:55 shift-del  |
 |
Excel VBA (Makros): Makros fortlaufend ausführen |
15 |
MaSch0212 |
239 |
21. Nov 2009, 21:06 MaSch0212  |
 |
Excel Hilfe: Freigabe von Mappen mit Makros / Zusammenführung von mappen |
1 |
tokru |
234 |
15. Sep 2009, 06:52 Thomas Ramel  |
 |
Excel Formeln: Wert Abhängig des Ergebnisses formatieren |
9 |
zimboo |
315 |
08. Jul 2009, 13:58 zimboo  |
 |
Excel VBA (Makros): Makros öffnen andere Exceldatei - warum? |
2 |
Gast |
313 |
16. Jun 2009, 15:42 plotti  |
 |
Excel VBA (Makros): Kombinationsfelder von einer Auswahl abhängig |
0 |
rahelmatthes |
110 |
18. März 2009, 16:50 rahelmatthes  |
 |
Excel VBA (Makros): WENN;DANN mit Makros |
3 |
Donald1977 |
4722 |
19. Dez 2008, 16:32 zigge  |
 |
Excel VBA (Makros): Makros beim öffnen ausführen |
3 |
lirum |
763 |
23. Okt 2008, 11:16 lirum  |
 |
Excel VBA (Makros): Makros in Excel 2000 einfügen |
0 |
micha_kugler |
226 |
20. Mai 2008, 23:32 micha_kugler  |
 |
Excel VBA (Makros): Makros in unterschiedl Dateien verwalten |
4 |
clementis |
428 |
05. Mai 2008, 01:37 clementis  |
| |
|