Hallo, ich habe folgendes Problem: Ich habe eine grosse Tabelle, die ich abhängig vom Inhalt der Zellen in Spalte Z in mehrere kleinere teilen und jeweils unter separaten Namen abspeichern muss. Dazu habe ich ein VBA Modul geschieben, dass zunächst die Ursprungstabelle mehrfach kopiert und unter neuen Namen speichert. Jede der so erzeugten Tabellen wird anschliessend geladen und abhängig vom Inhalt in Spalte Z werden alle überflüssigen Zeilen gelöscht. Das ganze funkioniert auch, dauert aber extrem lange. Bis etwa Zeile 80 geht es schnell, dann wird es immer langsamer und ab etwa Zeile 160-180 hat man den Eindruck, der PC hängt. Das
Programm kommt aber ordnungsgemäss zum Ende. Wer hat eine Idee, was dieses Verhalten verursacht, bzw wie man das ganz beschleuningen kann. Aktualisierung der Bildschirmanzeige und Autom.Kalkulieren habe ich bereits ausgeschlatet!
For ix2 = 3 To RowMaxDE If ActiveSheet.Cells(ixRow, DEColAdmin).Value <> DEFile(ix1) Then ActiveSheet.Rows(ixRow).Delete Else ixRow = ixRow + 1 End If Application.StatusBar = OutStatusBar & " - Line " & ix2 Next ix2
Warum wirfst die ungültigen aus der Ursprungstabelle(oder einer Kopie) nicht direkt raus und speicherst nacher die einzelnen Teile is doch viel weniger Aufwand und sicher auch schneller.
weil ich wie gesagt mehrere verschiedene Teile erzeugen muss, will sagen TeilA enthält zB Zeilen 5-20, Teil B Zeilen 1-4 und 21-33 usw. Das erzeugen der verschiedenen Dateien geht wirlklich schnell, das Laden und Speichern ebenfalls. Das Löschen der Zeilen in ein und derseleben Tabelle ist das Probelem
Jo soweit verstanden..aber dann wärs doch einfacher du machst es von oben nach unten fertig in einem Zug.
Du hast ja Kriterien nachdem du die Abschnitte in neue Tabellen aufteilst. Und du hast auch kriterien nachdem du nacher aus den Teiltabellen die Zeilen löschst oder?
Und was am längsten dauert is das Löschen der ungültigen Zeilen.
Also liegts doch nahe das einfach zu umgehen..
Warum prüfst du nicht jede Zeile auf Abschnitts Kriterium und gleich auf gültige Zeile.
Wenn gültige Zeile schreibst sie in die jeweilige neue Teiltabelle nächste Tabelle anlegen für nächsten Teilabschnitt, wieder zeilen prüfen und nur die schreiben die gültig sind.. usw
Dadurch entfällt das kopieren und öffnen der Tabellen und auch das rauslöschen aus denselben, also du schreibst praktisch sofort das ergebnis in die jeweilige Tabelle für den jeweiligen Abschnitt.