Herbers Excel-Forum - das Archiv
mein Such/Löschalgorithmus optimieren
Betrifft: mein Such/Löschalgorithmus optimieren
von: Daniel
Geschrieben am: 05.11.2003 14:30:38
hallo!
ich bins nochmal , mit einer 2.frage :)
ich habe einen löschalgorythmus, der von allen doppelten zeile eine löscht,
nur bei meinen 2000 zeilen dauert es immer so lange... :/
vielleicht entdeckt ihr etwas im code, was man optimieren könnte
(info: jede zeile kann maximal 1x doppelt sein (sprich max 1x2Zeilen des gleichen Inhaltes)):
Dim intRow As Integer
intRow = 2
Do Until IsEmpty(Cells(intRow, 1))
If Application.CountIf(Columns("A"), Cells(intRow, 1)) > 1 Then
Cells(intRow, 1).EntireRow.Delete
End If
intRow = intRow + 1
Loop
Betrifft: AW: mein Such/Löschalgorithmus optimieren
von: Andreas Walter
Geschrieben am: 05.11.2003 14:48:53
Zwei Vorschläge
1) Am Anfang
Application.Calculation = xlCalculationManual
und am Ende
application.Calculation=xlCalculationAutomatic
setzen.
2) neu schreiben
In dem Makro folgendes machen
- in einer Hilfsspalte die zählenwenn Funktion einfügen
- Block sortieren nach Hilfsspalte
- Alle 2'er (oder höhre) in der Hilfsspalte mit einem Befehl löschen
- Hilfsspalte entfernen
In einer hilfs
Betrifft: AW: mein Such/Löschalgorithmus optimieren
von: K.Rola
Geschrieben am: 05.11.2003 14:55:14
Hallo,
Zeitersparnis ca. 70%
Option Explicit
Sub machs()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim lngRow As Long
lngRow = 2
Do Until IsEmpty(Cells(lngRow, 1))
If Application.CountIf(Columns("A"), Cells(lngRow, 1)) > 1 Then
Rows(lngRow).Delete
End If
lngRow = lngRow + 1
Loop
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Gruß K.Rola
Betrifft: AW: mein Such/Löschalgorithmus optimieren
von: Daniel
Geschrieben am: 05.11.2003 15:02:43
danke!
geht nun super :)