Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitoptimierung

Forumthread: Laufzeitoptimierung

Laufzeitoptimierung
30.01.2019 15:38:47
Luisa
Hallo,
Ich habe in einem Projekt einen Codeschnipsel in ähnlicher Form mehrmals verwenden muss. Dieser hat allerdings eine relativ lange Laufzeit (1 Sekunde) , weshalb mein ganzes Programm ziemlich langsam ist.
Meine Frage: Hat jemand eine Idee, wie ich die Laufzeit verbessern kann?
Die Aufgabe von dem Part ist es, aus einer langen Liste (Tabelle 3: "Archiv") in der relativ viele Nummern ("Pläne") stehen, die mehrmals vorhanden sind, jeden einmal in eine andere Liste (Tabelle 2: "Otif") zu schreiben.

'Tabelle leeren
Tabelle2.Range("A2:EE1048576").ClearContents
letzteZeileArchiv = Tabelle3.Cells(1048576, 1).End(xlUp).Row
ersteFreieZeileOtif = 2
'Alle Planungsrunden auflisten
For i = 4 To letzteZeileArchiv
plan = Tabelle3.Cells(i, 1).Value
If Application.CountIf([A:A], plan) = 0 Then
Tabelle2.Cells(ersteFreieZeileOtif, 1).Value = plan
Tabelle2.Cells(ersteFreieZeileOtif, 2).Value = Tabelle3.Cells(i, 2).Value
Tabelle2.Cells(ersteFreieZeileOtif, 3).Value = Tabelle3.Cells(i, 3).Value
ersteFreieZeileOtif = ersteFreieZeileOtif + 1
End If
Next
Danke schon mal!
Luisa
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitoptimierung
30.01.2019 15:47:03
UweD
Hallo
ohne den Code zu testen...
- Kopiere (natürlich per VBA) die Spalte in den Zielbereich
- Dann diese Spalte markieren
- Daten, Duplikate entfernen
- ...
LG UweD
AW: Laufzeitoptimierung
30.01.2019 16:09:53
Luisa
WOW! Das ich da nicht drauf gekommen bin! Danke! Jetzt sind es unter 100 Millisekunden!
Prima! Danke für die Rückmeldung. owT
30.01.2019 16:11:36
UweD
Anzeige
1/100 oder 1/1000 der Zeit erreichst Du, wenn
30.01.2019 15:47:08
lupo1
... Du alle Daten in ein Variant-Array verschiebst, dort behandelst und am Ende in die Tabelle zurückschiebst.
AW: Laufzeitoptimierung
30.01.2019 15:47:33
Daniel
Hallo Luisa (jetzt aber richtig!),
versuch es auf jeden Fall mal mit Application.ScreenUpdating = False und Application.Calculation = xlCalculationManual vor dem Code.
Danach dann beides wieder einschalten (wenn dein Programm durchgelaufen ist).
Gruß
Daniel
Anzeige
AW: Laufzeitoptimierung
30.01.2019 16:12:26
Luisa
Haha und danke! Laufzeit liegt mittlerweile bei unter 100 Millisekunden!
AW: Laufzeitoptimierung
30.01.2019 15:49:01
ChrisL
Hi
gleiche Idee wie Uwe
Sub t()
Tabelle2.Cells.Delete
Tabelle3.UsedRange.Copy Tabelle2.Range("A2")
Tabelle2.UsedRange.RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

cu
Chris
Anzeige
AW: Laufzeitoptimierung
30.01.2019 16:11:01
Luisa
Habe ich gemacht! Hat fantastisch funktioniert! Danke :) Braucht nur noch unter 100 Millisekunden
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige