[Excel] VBA Code sehr langsam (Viele Daten)

Ja ich benutze ebenfalls 7zip. Dachte ich pack es als zip, damit ich andere Programme nicht aussen vorlasse. Scheint ja nicht funktioniert zu haben.
 
Am besten den Windows-eigenen Packer verwenden (Senden an > ZIP-komprimierter Ordner) oder gar nicht packen. Das Forum akzeptiert auch .xlsx als Anhang.
 
Mit meinem Script über alle rüber? Vorher als xlsm gespeichert? Welche Excel Version?
 
Zuletzt bearbeitet:
Bei mir ist deine Datei ebenfalls sehr langsam.
Ich kann dir aber sagen worans liegt: Du hast deine Daten als Tabelle formatiert. Tabellentools (Entwurf) > In Bereich konvertieren und schon läuft dein Makro in 1,688 Sekunden durch.

Mehr Infos dazu gibts auf SO:
http://stackoverflow.com/questions/8865296/excel-list-object-vba-performance-bug

Skytunnel schrieb:
The problem I’ve encountered is that if the currently active cell is within the List Object, then setting the Calculation Mode to manual seems to have no effect whatsoever.

Das scheint tatsächlich zu stimmen. Wenn du eine Zelle in deinem Tabellenobjekt auswählst und dein Makro startest, rödelt es ewig. Wenn du aber eine Zelle außerhalb auswählst (beispielsweise KE20) und dann das Makro ausführst, ist es wieder schnell.

Charles Williams schrieb:
To get the slowdown you seem to need 3 conditions: 1. the active cell must be within the Listobject (Table). 2. The cell(s) being updated must be on the same worksheet as the Listobject. 3. The time taken is a function of the number of formulas (but the formulas are not being recalculated).
 
Zuletzt bearbeitet:
Super, vielen Dank. Kann bestätigen, dass es als Bereich direkt fertig ist.
 
2010. Du hast wahrscheinlich eine andere Zelle markiert oder warst auf einem anderen Arbeitsblatt.
 
Habe nochmal gerade getestet.

Wenn ich ganz oben links bin, dauert es gerade eine Sekunde.

Auf D30 etwa 14-15 Sekunden.

Aber 30 Minuten hat es nie gedauert.
 
Bei mir hat es in der langsamen Variante etwa 4 Sekunden pro Zeile gebraucht. Das wären knapp 17 Minuten für alle 250 Zeilen.
Aber ich habe es vorher abgebrochen.

Darf ich blöd fragen, welches Makro du verwendest? Maxx hat zwei gepostet.
Das erste nimmt Zeile 30 bis 32. Das zweite nimmt Zeile 30 bis 280. Mit dem ersten Makro bist du natürlich deutlich schneller fertig als wir. :D
 
Ich habe das genommen:
Code:
Sub test()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
        For Each c In Worksheets("Data").Range("C30:JZ32").Cells
        If c.HasFormula Then _
            If IsNumeric(c.Text) Then _
            c.Value = c.Value
    Next
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Das Makro habe ich dann über Alt-F8 und dann Ausführen gestartet.
 
Naja, das ist die ursprüngliche Aufgabe gewesen, die ja schon so lange gelaufen sein soll. Oder nicht?
 
Um mich mal selbst zu zitieren

Nun umfasst der eigentliche Bereich aber etwa 80000 Zellen.


Deswegen hatte ich das vollständige Skript dazugeschrieben, da wir eben ordentlich vergleichen können.


Wollte deswegen auch deine Excel Version wissen, nicht, dass das ein reines 2016 Problem ist, aber da Physikbuddha es auch hat, scheint es wohl auch nicht verbessert worden zu sein.
 
Das mit den 80k Zellen wollte ich grad schreiben. Von C bis JZ sinds 284 Spalten, also braucht es dafür ~280 Zeilen.
Ja, das sind leider solche Bugs die wohl nie gefixt werden, weil der Anteil der Anwender der darunter leidet im Promillebereich liegen wird.
Frage mich was das Office-Team so treibt, wenn der Tag lang ist.
 
Wie dem auch sei.

Im Post #18 habe ich das komplette Blatt mit Summenformeln gefüllt. Ging auch ohne Probleme.

Habe aber noch mal dein Blatt genommen und von C06 bis JZ514 laufen lassen: 8 s
 
Wenn ich auch ner anderen Tabelle bin und das Skript laufen lasse, dann dauert es auch nicht. Genauso wenig, wenn ich das Feld A1 ausgewählt hab.

Meine Datei(logischerweise frisch) -> Data -> Auf K43 klicken -> Code Anzeigen -> Mein Skript und schon sollte es eigentlich länger dauern, ausser der Fehler ist bei dir nicht reproduzierbar
 

Ähnliche Themen

Zurück
Oben