Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Merkwürdiges Performance-Problem beim säubern

Forumthread: 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
Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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