Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Merkwürdiges Performance-Problem beim säubern

Merkwürdiges Performance-Problem beim säubern
10.06.2005 16:08:38
Eduard
Hallo Liebe Community,
bin mal auf Eure Hilfe angewiesen...
Folgendes Problem:
Führe in VBA eine Säuberung von Artikelnummern durch. Merkwürdigerweise benötigt dieser laut Stoppuhr über 75 Sekunden und lastet die CPU zu 99% aus. Excel ist in den 75 Sek. wie gelähmt.
Situation:
Spalte B lädt aus einer anderen Tabbelle ca. 1200 Artikelnummer. Allerdings sind Dublikate vorhanden welche entfernt werden sollen, wodurch keine Leerzeilen entstehen dürfen
Vorgehen
1.
Spalte C überprüft, ob Dublikate in Spalte B vorliegen. Wenn Ja wird das Dublikat gelöscht. Dazu benutze ich in Zelle C90 z.B. folgenden Formel:
=WENN(ZÄHLENWENN($B$22:B90;B90)>1;"";B90)
(Wenn der Wert B90 in der Matrix B22:B90 öfter als einmal vorkommt, dann lösche ihn.)
2. Im Zweiten Schritt lasse ich ein Makro über die Spalte laufen, welches die soeben erzeugten leeren Zellen entfernt. Und in Spalte D schreibt:

Sub DublikateInArtikelnummerSäubern()
Dim zelle As Range
Dim i As Integer
i = 22
For Each zelle In Application.Workbooks("Bestellformular.xls").Worksheets(1).Range("C22:C2021")
If zelle.Value <> "" Then
Application.Workbooks("Bestellformular.xls").Worksheets(1).Range("D" & i) = zelle.Value: _
i = i + 1
End If
Next zelle
End Sub

-----------------Fertig-------------------------------------
An der so entstanden gesäuberten Spalte D hängen dann noch ca. 10 x 1200 SVERWEISE die anhand der Artikelnummer noch Produkteigenschaften finden, das geht allerding ziemlich schnell.
Es kann doch nicht sein, dass diese einfache Schleife den Rechner so belastet!?!
Vielleicht seh ich den Wald auch vor lauter Bäumen nicht mehr, und es gibt eine viel einfachere Lösung für mein Problem...
Kann mir bitte jemand helfen?
Danke und lieber Gruß,
Eduard

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

Betreff
Datum
Anwender
Anzeige
AW: Merkwürdiges Performance-Problem beim säubern
10.06.2005 16:16:32
ransi
hallo eduard
weil ich deine funktionierenden code nicht großartig umstricken möchte
versuchs erstmal so:

Sub DublikateInArtikelnummerSäubern()
Dim zelle As Range
Dim i As Integer
i = 22
Call turbo_ein
For Each zelle In Application.Workbooks("Bestellformular.xls").Worksheets(1).Range("C22:C2021")
If zelle.Value <> "" Then
Application.Workbooks("Bestellformular.xls").Worksheets(1).Range("D" & i) = zelle.Value: _
i = i + 1
End If
Next zelle
Call turbo_aus
End Sub

Public

Sub turbo_ein()
With Application
.EnableEvents = False
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
End Sub

Public

Sub turbo_aus()
With Application
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub

ransi
Anzeige
SUPER
10.06.2005 16:33:03
Eduard
Hallo ramsi,
Du bist ein Geni.
Dein Turbo klappt hervoragend, die Rechenzeit ist auf 8 Sekunden gesenkt.
Vielen Dank, und schönes Wochenende.
Eduard

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige