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

Tabellenbereich löschen - langsam

Tabellenbereich löschen - langsam
02.09.2013 13:18:12
liliho
Guten Tag,
ich will alle Zeilen in einem Tabellenbereich löschen (und danach die Zeilen wieder neu befüllen).
Ich mache dies per VBA und benutze denselben Code, der mir per Macro-Recorder gezeigt wurde. Manuell ging das absolut rasant: Bereich (Tabellen-Name) markiert, Zeilen löschen... Schwupps.
Per VBA (Loop) geht das ok, aber bei mehr als 1000 Zeilen doch ziemlich langsam.
Ich habe ScreenUpdate und Calculation ausgeschaltet.
Muss ich noch andere Sachen ausschalten?
Pivot-Tabellen, die sich auf diese Tabelle1 beziehen werden ggf. laufend aktualisiert?
Mein VBA-Code:
With Tabelle1 ' Arbeitsblatt
max = ... diese Zahl hole ich aus einer anderen Zelle, die laufend nachgeführt wird
Call doWait (Cursor auf Wait, ScreenUpdate ausschalten, Calculation aus)
Application.Goto Reference:="TabDatenImport"
For zae = 1 To max
Selection.ListObject.ListRows(1).Delete
Next zae
MsgBox "Fertig"
Call stopWait (alles wieder einschalten)
Diese Sub benötigt eine deutlich sichtbar lange Zeit... stört mich zwar nicht, aber ein anderer User wird da ggf. bereits nervös ;-)
Vielen Dank für einen Experten-Rat
Gruss,
Liliane

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenbereich löschen - langsam
02.09.2013 13:44:59
Hajo_Zi
setze die Variable Max auf 0, die wird in der schleife nicht benötigt.

AW: Tabellenbereich löschen - langsam
02.09.2013 15:32:55
liliho
Hallo Hajo,
wieso 0? max heisst: die anfängliche Zahl der Tabellen-Zeilen.
Alle Zeilen werden gelöscht, als mache ich einen Loop über diese Anzahl?
Innerhalb der Schlaufe ist max sicher nicht relevant, aber für der Loop-Ausstieg
Im Makro (zum Ausprobieren) sind soviele Befehlszeilen mit
Selection.ListObject.ListRows(1).Delete
Gruss, Liliane

AW: Tabellenbereich löschen - langsam
02.09.2013 17:31:01
Hajo_Zi
Gut Du hast mehr Ahnung als ich Du Läuft 10.000 durch die Schleife und löscht 10.000 den gleichen Bereich. Dann wundere Dich nicht das es solange dauert.
Gruß Hajo

Anzeige
AW: Tabellenbereich löschen - langsam
02.09.2013 15:59:40
selli
hallo liliane,
zeilen würde ich immer von unten nach oben löschen (for next schleife mit step -).
dann brauchst du auch deine variable max nicht dauernd zu erneuern.
gruß
selli

AW: Tabellenbereich löschen - langsam
03.09.2013 11:33:28
Gerd
Hallo Liliane,
was soll hinterher vom "Tabellchen" übrig bleiben?
Gruß Gerd

AW: Tabellenbereich löschen - langsam
03.09.2013 14:34:16
liliho
Hallo Gerd,
Danke für die Nachfrage:-)
Die Tabelle behält nur die Überschriften bzw. ich lasse eine einzige Zeile stehen.
Das ist auch alles kein Problem und i.O.
Meine Frage betrifft eigentlich lediglich die Art, wie Excel arbeitet:
wenn ich die Tabelle manuell lösche, dauert das gar keine Zeit.
Wenn ich den manuellen Vorgang per Makro aufzeichne und dann wieder als Sub laufen lasse, dann dauert es länger. Ich weiss eben nicht, wo/wie/was da etwas verschieden abläuft.
Nimmt mich eben wunder und es wäre schön, wenn durch Knopfdruck meine Lösch-Sub auch so schnell arbeiten würde bzw. es nur "Schwupps" machen würde.
Mit Gruss,
Liliane

Anzeige
AW: Tabellenbereich löschen - langsam
03.09.2013 15:26:54
Gerd
Hallo Liliane!
Probiers mal so:
Tabelle1.ListObjects(1).DataBodyRange.Rows("1:" & Max).Delete
Anstelle des Index 1 kannst du auch den Namen des Tabellchens schreiben.
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige