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

Overflow bei zeilenweisem vergleichen

Forumthread: Overflow bei zeilenweisem vergleichen

Overflow bei zeilenweisem vergleichen
10.09.2004 10:46:15
Bernhard
Servus,
da habe ich nun endlich ein VB Makro welches mir doppelte Zeilen anhand einzelneer Felder markiert -
und dann bekopmme ich einen overflow.
Es sind 47973 Zeilen und die Salten A bis BS
Und das Makro das Probleme macht ist einfach aber funktionierte bisher:

Sub Doppelte_Zeilen_Spalte1_sortieren_und_markieren()
' vergleicht dann alle uebereinander liegenden Felder in Spalte A und markiert die doppelten Spalten rot
' Anzahl der Zeilen wird in A festgestellt
' Es gibt eine Überschriftenzeile
Dim I As Integer ' Startzeile ist Zeile 2 wegen der Überschrift
Dim J As Integer ' Durchlaufender Zähler
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For J = Cells(Rows.Count, 1).End(xlUp).Row To I + 1 Step -1
If Cells(I, 1) = Cells(J, 1) And Cells(I, 4) = Cells(J, 4) Then
Rows(J).Interior.ColorIndex = 3
' Rows(J).Delete
End If
Next J
Next I
End Sub

Hat jemand eine Idee weshalb ich einen Fehler wie folgt bekomme:
Runtime error (6)
Overflow
Der Debuger geht dann in die Zeile:
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Danke fuer Eure Hilfe.
Bernhard Stillger
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Overflow bei zeilenweisem vergleichen
10.09.2004 11:23:29
Bernhard
Servus,
als Anmerkung noch:
Ich habe eine Rechner mit 1 GB RAM und einem P4 M 2,2 GHz.
Aber ich denke es ist kein Hardwareproblem.
Gruss
Bernhard
AW: Overflow bei zeilenweisem vergleichen
ypsilon
hi Bernhard
wenn du dann mal i als long deklarierien würdest ;-)
cu Micha
AW: Overflow bei zeilenweisem vergleichen
10.09.2004 14:10:07
Bernhard
Hallo ypsilon,
vielen Dank.
Ich musst allerding I und J als Long deklarieren. Nur "I" brachte trotzdem einen overflow.
Aber die Performance ist ja grottenschlecht. kann man das irgendwie beschleunigen ?
Da gab es doch einen VB Parameter, der das Disply nicht jedesmal aktualisierte.
Wo finde ich diesen oder wie heist er und wie baue ich den denn ein; dann sollte es doch schneller werden, oder ?
Gruss
Bernhard
Anzeige
AW: Overflow bei zeilenweisem vergleichen
yps
hi Bernhard,
wozu brauchst du J ?
wenn du sowieso nur die darüberligende zeile vergleichen willst reicht I
und der "parameter" ist auch eingebaut ;-)

Sub Doppelte_Zeilen_Spalte1_sortieren_und_markieren2()
Dim I As Long
ScreenUpdating = False
For I = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(I - 1, 1) = Cells(I, 1) And Cells(I - 1, 4) = Cells(I, 4) Then
Rows(I).Interior.ColorIndex = 3
End If
Next I
ScreenUpdating = True
End Sub

cu Micha
Anzeige
Performance hierzu schlecht
10.09.2004 18:20:50
Bernhard
Hallo,
der Rueffel ist angekommen - obwohl es fuer mich verschiedene Fragen sind.
Aber trotzdem, machen wir hier weiter:
Die Performance bei meinem Problem ist grottenschlecht.
Jetzt habe ich schon das aktualisieren des Bildschirm unterdrueck (Application.ScreenUpdating = False) und loesche auch nicht gleich sondern markiere in Rot und in Spalte BV mit X.
Aber er benoetigt fuer ca. 1000 Yeilen 6 Minuten. Und ich habe uebr 47000 :-(
Geht es irgendwie schneller ?
Gruss
Bernhard
Anzeige
AW: Performance hierzu schlecht
yps
liest du eigentlich mal was man dir so schreibt ?
schau dir doch einfach mal meinen letzten post in diesem thread an
cu Micha
AW: Performance hierzu schlecht
10.09.2004 20:27:39
Bernhard
Hallo yps,
klar habe ich das gelesen. Ich hatte es jedoch nicht als Performancesteigernd erkannt, sondern als verbesserte, wereinfachte Art das gleioche zu tun :-).
Also werde ich es gleich einmal ausprobieren - und gebe Dir Bescheid was dabei herausgekommen ist. Danke fuer deine Hilfe.
Gruss
Bernhard
Anzeige
AW: Performance hierzu schlecht
yps
hi Bernhard,
wenn du eine schleife weglässt sparst du ja nur rund 50.000 mal 50.000 durchläufe ;-)
warum sollte das auch schneller sein ? *grins*
cu Micha
Zps performt wie ... super schnell - Danke
10.09.2004 22:13:21
Bernhard
Man ist das schnellÖ
Start Time End Time Start Line End Line Methode Zeit
81 82 83 84 85 86
21:33:11 21:36:33 00:03:22
21:36:33 21:36:33 38000 38001 Alt 00:00:00
21:37:06 21:37:06 38000 38001 Alt 00:00:00
21:46:30 21:47:16 37500 38001 Alt 00:00:46
21:48:13 21:51:31 37000 38001 Alt 00:03:18
21:53:41 21:55:18 37000 38001 Alt 00:01:37
21:55:47 21:55:49 36000 37001 Neu 00:00:02
21:57:08 21:57:19 30000 36001 Neu 00:00:11
21:58:51 21:59:10 20000 30001 Neu 00:00:19
22:06:13 22:06:33 20000 30001 Schnellform von YPS 00:00:20
22:08:21 22:08:41 20000 30001 00:00:20
22:09:01 22:09:20 20000 30001 Schnellform von YPS 00:00:19
22:10:31 22:11:16 20000 20501 Erstform von mir - laaaangsam 00:00:45
Anzeige
;

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