Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1672to1676
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

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

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
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige