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

Makro funktioniert nicht bei vielen Datensätzen

Makro funktioniert nicht bei vielen Datensätzen
Mike
Hi Ihr,
habe ein etwas seltsames Problem und hoffe, Ihr könnt mir helfen...:
Ich habe eine Tabelle mit einem Makro.
Das Makro arbeitet einwandfrei, wenn die Tabelle z.B. 2000 oder 5000 Datensätze enthält, bei 45000 dagegen erhalte ich völlig falsche Ergebnisse.
Die relevanten Formeln befinden sich alle nicht in der Tabelle, sondern werden vom Makro nach eingefügt und nach unten kopiert.
Anschließend werden die Daten per Makro gefiltert und die Ergebnisse auf verschiedene Blätter kopiert.
Gibt es hier ein Maximum an Datensätzen oder Einträgen für VBA ?
Code kann bei Bedarf gerne hochgeladen werden.
VG und vielen Dank Euch für jeden Tipp,
Mike
AW: Makro funktioniert nicht bei vielen Datensätzen
11.02.2011 12:53:31
Hajo_Zi
Hallo Mike,
benutzt Du vielleicht Integer Statt Long?

AW: Makro funktioniert nicht bei vielen Datensätzen
11.02.2011 12:59:11
Mike
Hi Hajo,
vielen Dank mal wieder ! :-)
Integer verwende ich nur 1x für die MsgBox ganz am Ende des Makros.
Kann es sein, dass es Limit für die Filter oder andere Formeln gibt ?
Könnte ich Dir die Datei (ohne Daten) evtl. extern schicken - der Code ist hier fürs Forum vermutlich zu lang... ?
VG,
Mike
AW: Makro funktioniert nicht bei vielen Datensätzen
12.02.2011 12:15:59
PeTeR
Hallo Mike,
evtl. dauert das Berechnen von 45000 Formeln etwas länger, so dass der Filter einfach zu früh filtert, bevor alle Formeln berechnet sind. Vesuche doch einfach mal per Do events oder Application.wait vor dem Filtern ein bisschen Zeit zu gewinnen.
Viel Erfolg
PeTeR
Anzeige
AW: Makro funktioniert nicht bei vielen Datensätzen
12.02.2011 13:39:51
Mike
Hi Peter,
der Tipp ist super und klingt vielversprechend - vielen vielen Dank schonmal im Voraus !!
Da ich mit VBA leider noch ganz am Anfang stehe, kannst Du mir evtl. genau beschreiben, welchen Befehl ich wo ergänzen muss oder es sogar direkt im Code einfügen ?
Datei kann gerne per Email verschickt werden - zum Upload hier ist's glaub ich zu viel...
VG aus Dublin,
Mike
AW: Makro funktioniert nicht bei vielen Datensätzen
13.02.2011 19:08:23
PeTeR
Hallo Mike,
mit dem VBA-Befehl
Application.Wait(Now + TimeValue("0:00:10"))
wartet das Makro 10 Sekunden bis der nächste Befehl ausgeführt wird.
Viel Erfolg
PeTeR
AW: Makro funktioniert nicht bei vielen Datensätzen
15.02.2011 11:38:10
Mike
Hi Peter,
nochmals vielen Dank für Deine Hilfe hier !
Da ich mit VBA noch ganz am Anfang stehe und hier selbst keine Limits für eine Anzahl von Datensätzen etc. im Code entdeckt habe, wäre es mir am liebsten, wenn sich jemand den kompletten Code einmal ansehen und auf mögliche (versteckte) Limits bzw. Datensatzbegrenzungen überprüfen könnte.
Wie gesagt, der Code läuft einwandfrei mit z.B. 2.000 oder 5.000 Datensätzen, nicht aber bei 45.000 Datensätzen.
Ich wäre selbstverständlich auch bereit, dafür zu bezahlen.
Hier die Datei inkl. Code (Versand per Email ist gerne auch möglich):
https://www.herber.de/bbs/user/73555.xls
Wichtig: Zum Testen muss das Zahlen-/Datumsformat des Betriebssystems vorübergehend auf Englisch (Irland) umgestellt werden !
Bin für jede Rückmeldung dankbar.
Viele Grüße und vielen Dank im Voraus,
Mike
Anzeige
AW: Makro funktioniert nicht bei vielen Datensätzen
15.02.2011 23:39:22
fcs
Hallo Mike,
was bedeutet
Wie gesagt, der Code läuft einwandfrei mit z.B. 2.000 oder 5.000 Datensätzen, nicht aber bei 45.000 Datensätzen.

Bekommst du eine Fehlermeldung?
Wird das Makro nicht bendet?
Hängt sich Excel auf?
Wird das Makro ausgeführt, aber die Ergebnisse stimmen nicht?
Ich hab im Blatt "Import" mal die letzte Zeile kopiert bis zur Zeile 50000.
Das Makro lief ohne Störung durch, wenn auch mit einer Laufzeit von 15 bis 20 Sekunden.
Was du evtl. machen muss:
Du fügst im Makro mehrmals Formeln in Zellen ein und ersetzt anschliessend die Formeln durch die Ergebnisse. Hier muss evtl. jeweils zusätzlich eine Calculate-Anweisung eingefügt werden, damit die Zellen neu berechnet werden bevor die Ersetzung ausgeführt wird. Beispiel:
' Differ between warnings and restrictions with same case ID
With Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row).Offset(0, 10)
.Formula = "=IF(D1="""","""",IF(D1'Settings & Report'!$S$24,D1,CONCATENATE(D1,""-"",G1)))"
.Calculate
.Formula = .Value
End With

Gruß
Franz
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige