Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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

Performance Probleme bei Cells()

Performance Probleme bei Cells()
10.10.2013 13:23:42
Excelcruncher
Hallo liebe Leute!
ich hoffe mir kann jemand weiterhelfen...
folgendes Problem: ich durchsuche eine große Tabelle in der spalte 4 (D) nach einem Wort. Das ganze funktioniert wunderbar, jedoch dauert das Ganze viel zu lange...nicht weil die Schleifen zu umständlich sind, sondern weil der (hier markierte Bereich) irgendwie lagged.
Das Ganze habe ich mit dem Debugger durchgeschaut und es liegt wirklich nur an dem Bereich, Vorschläge bezüglich der Schleifen sind also nicht wirklich gesucht^^
Das Schreiben der Zellen hatte schonmal wunderbar funktioniert (0 Sekunden für Schreiben von 500 Zeilen), nun aber dauert es für eine Zeile zu schreiben an die 7 Sekunden. Und ich weiß nicht was daran Schuld sein könnte. (Excel-Berechnung ist schon die ganze Zeit auf Manual gestellt)
Was läuft hier falsch? Bin um jede Hilfe dankbar...

Sub doFillCalc()
Dim criteria As String
Dim aimsheet As Worksheet
criteria = "testsuche"
Set aimsheet = Worksheets("zielsheet")
Dim i As Long
Dim month As Byte
Dim criteriacolumn As Integer
Dim rowscolumns As Variant
Dim r As Range
Dim lastcell As Long
Dim database As Worksheet
'takes the criteria to search for
criteriacolumn = 4
lastcell = aimsheet.Cells(rows.Count, 1).End(xlUp).Row
Set database = Worksheets("Masterdata")
Set r = database.Range(database.Cells(2, 2), database.Cells(5, 2))
rowscolumns = r.Value
With database
For month = 1 To 4
If month = 1 Then
For i = 17 To rowscolumns(month, 1)
If criteria = .Cells(i, criteriacolumn) Then
lastcell = lastcell + 1
'hier ist das PROBLEM:
 aimsheet.Cells(lastcell, 1) = .Cells(i, 2)
aimsheet.Cells(lastcell, 5) = .Cells(i, 3)
aimsheet.Cells(lastcell, 6) = .Cells(i, 7)
aimsheet.Cells(lastcell, 7) = .Cells(i, 6)
aimsheet.Cells(lastcell, 10) = .Cells(i, 9)
aimsheet.Cells(lastcell, 11) = .Cells(i, 4) 
'Ende Problem
End If
Next
End If
Next
End With
MsgBox ("fertig")
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wie hast du das denn angestellt,
10.10.2013 15:19:00
EtoPHG
Das Ganze habe ich mit dem Debugger durchgeschaut und es liegt wirklich nur an dem Bereich,
unbekannter?
Mich würde die Debugging Methode interessieren. Zum Messen musste ich bis anhin immer Timer-Messpunkte einbauen.
Gruess Hansueli

AW: Wie hast du das denn angestellt,
10.10.2013 15:33:44
Excelcruncher
Die Timer-Messpunkte habe ich der Übersicht halber hier entfernt.
Nun ganz einfach: ich gehe mit f8 total flüssig durch die Schleifen...komme ich dann zu
aimsheet.Cells(lastcell, 1) = .Cells(i, 2)
lädt er für jede Zeile in diesem Block etwa 1 Sekunde. Deshalb sehe ich hier den Fehler...
Noch was ergänzendes:
Nachdem ich etwas genervt auf dem laptop rumgehämmert hatte da er sich wieder aufgehänkt hat kam folgende Meldung:
Laufzeitfehler '-2147417848 (80010108)
Die Methode _Default für das Objekt Range fehlgeschlagen
Bei Klick auf Debug bringt er mir die 2. Zuweisungszeile, also
aimsheet.Cells(lastcell, 5) = .Cells(i, 3)
Bei einem weiteren Klick auf Play ist er sofort fertig...wieder 500 Zeilen in 0 Sekunden.
Wieso macht er das nicht von vornherein so?
Ich bin dem Wahnsinn nahe und freue mich über jeden Vorschlag

Anzeige
Zu wenig Infos, Beispielmappe bitte! (owT)
10.10.2013 15:42:38
EtoPHG

AW: Zu wenig Infos, Beispielmappe bitte! (owT)
10.10.2013 16:00:49
Excelcruncher
https://www.herber.de/bbs/user/87607.xlsm
das ist die Beispieldatei...die funktioniert natürlich zackig. Die Originaldatei kann ich leider nicht verschicken. Es muss irgendwas an den Einstellungen liegen, denn der Code funktioniert in bestimmten Glücksfällen ja wie eine Rakete.

Ende meiner Sendung owT
10.10.2013 21:10:20
EtoPHG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige