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

Excel sehr langsam

Excel sehr langsam
30.08.2014 21:23:00
stef26
Hallo liebe Excelprofis,
ich habe mit Hilfe dieses Forums ein Tool erstellt, was dem Anwender ermöglichen soll eine Skizze zu erstellen. Habe eigentlich nur noch ein Problem, dass das Tool sehr langsam geworden ist.
Vor allem bei der Erstellung der Stückliste aus dem skizzierten Equipment zeigt sich dies. Habe am Anfang gedacht, dass es an der Anzahl der Shapes ca, 700Stück liegt, dem ist aber nicht so. Dann dachte ich, dass es mit dem
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
liegt. Nehme ich das aber aus dem Tool raus bringt es leider auch nichts.
Nehme ich es beim Auflisten(nur der Teil Stücklistenerstellung) mit auf, so wird es auch langsam ?
Ich habe mal 2 Varianten erstellt.
A) Auflisten - des zeigt einen 700 Shapes mit dem Macro.
Das Macro listet innerhalb weniger Sekunden alle Materialien unter dem Tabellenblatt Materialliste auf.
B) Im Orginal dauert die Bearbeitung (Macro in Zelle P15 BillOfMaterial) ca.5Minuten.
Im Tool gibt es keine Berechnungen (Indirekt) oder so, die Excel langsam machen.
Leider kann ich das Tool wg. der Größe nicht ins Forum stellen. Und bei den Teil nur mit dem Macro funktioniert der Code ja fehlerfrei. So hab ich einen Link auf mein OneDrive mal hier reingestellt.
https://onedrive.live.com/redir?resid=FFA421954C49778A!260&authkey=!APajuhA0SmO9tN8&ithint=folder%2cxlsm
Ich hoffe das dies erlaubt ist, da ich sonst keine andere Möglichkeit sehe das Problem euch zu zeigen.
Wer kann mir Tipps geben, an was dies liegt, dann werde ich versuchen dies anders zu lösen. Am Macro welches der BOM hinterlegt ist liegt es auf jeden Fall nicht.
Ich hoffe das einer von euch mir hier helfen kann, da ich bis auf dieses Geschwindigkeitsproblem mit dem Tool so gut wie fertig wäre...
Liebe Grüße
Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: Excel sehr langsam
31.08.2014 16:16:35
fcs
Hallo Stefan,
ich hab mir mal das per "BOM"-Button gestartete Makro angesehen.
Zwei wesentliche Änderungen hab ich eingebaut:
1. Ereignismakros werden vorrübergehend deaktiviert und der Berechnungsmodus vorübergehend auf manuell gesetzt. Danach lag die Makro-Laufzeit bei 15 bis 20 Sekunden.
Grund für die Beschleunigung: Im Blatt "Zusammenfassung" gibt es viele Formeln, die auf die Daten in Spalte A und/oder F der Materialliste zugreifen. Der manuelle Berechnungsmodus verhindert ständiges Neuberechnen.
2. Die Daten der vom Makro erzeugten Listen für Spalte A und F der Materialliste werden nicht mehr Zelle für Zelle eingetragen, sondern in 2 Arrays gesammelt und dann in 2 Blöcken im Blatt eingetragen.
Makrolaufzeit jetzt bei 7 bis 8 Sekunden.
Zusätzlich hab ich die If-Prüfungen etwas optimiert. Die If-Prüfungen mit mehreren And hab in einzelne If-Prüfungen aufgelöst. Dadurch sind insgesamt weniger Vergleichsrechnngen erforderlich und das Makro wird geringfügig schneller - bei 800 Schleifen-Durchläufen ist dieser Effekt aber nur minimal.
Bei den angegeben Laufzeiten des Makros ist zu berücksichtigen, dass mein Notebook mit WindowsVista und Office 2010, auf dem ich getestet hab, schon ein paar Jahre auf dem Buckel hat.
Die anderen Makros hab ich mal grob überflogen. In diesen Makros werden nicht in großem Umfang Werte in Zellen geändert. Trotzdem macht es wahrscheinlich Sinn die Bildschirm-Aktualisierung bei vielen Makros während der Makroausführung zu deaktivieren.
Gruß
Franz
Sub Rohre_Auflisten()
Dim wksMat As Worksheet
Dim Rohr As Shape
Dim arrA(), arrF(), intA As Integer, intF As Integer
Dim Länge As Double
Dim StatusCalc As Long
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
End With
With Sheets("Skizze")
ReDim arrA(1 To 1, 1 To .Shapes.Count)
ReDim arrF(1 To 1, 1 To .Shapes.Count)
intA = 0: intF = 0
End With
For Each Rohr In Sheets("Skizze").Shapes
If Rohr.Left  100 Then
If Rohr.Top 

Anzeige
AW: Excel sehr langsam
31.08.2014 17:24:25
stef26
Hallo Franz,
du bist meine Rettung. Läuft nun wirklich 1000 mal besser.
Super wie du das umgesetzt hast. Ich hatte schon die Befürchtung das es hierzu keine Lösung gibt.
Vielen vielen Dank für deine Unterstützung!!!!!!!!!!!!
DANKE
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige