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

Zeilen SCHNELL einfügen

Zeilen SCHNELL einfügen
TommiH
Hallöchen,
ich habe ein Zeitproblem, zumindest braucht Excel dafür extrem lange.
Ich habe ein Dateibearbeitungsscript welches eine Laufvariable (q) hat, immer wenn die Variable bei 100 200 300 400 usw. ist, sollen an der aktuellen Position 13 Leerzeilen eingefügt werden, da die Datei aber rund 130.000 Zeilen hat, dauert es schon sehr lange, wenn man es mit folgendem Codeschnipsel macht

For y = 1 To 13
Rows(q).Insert Shift:=xlDown
Rows(q).RowHeight = 35
Next y
Kann man das irgendwie (zeitlich) optimieren?
Tommi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen SCHNELL einfügen
21.10.2011 10:27:34
Reinhard
Hallo Tommi,

Sub Zeilen()
Dim q As Long, T As Single
T = Timer
For q = 130000 To 100 Step -100
With Rows(q & ":" & q + 12)
.Insert
.Offset(-13, 0).RowHeight = 35
End With
Next q
MsgBox Timer - T
End Sub

Überprüf mal im Blatt das Ergebnis...
Gruß
Reinhard
AW: Zeilen SCHNELL einfügen
21.10.2011 13:01:51
Daniel
Hi
Zeilen einfügen ist sehr langsam
eine Optimierung wäre, wenn du die 13 Zeilen nicht per Schleife, sondern als Block einfügst:

Rows(q).Resize(13).Insert
allerdings ist das auch noch nicht Optimal.
am schnellsten ist in einer Hilfsspalte einen Zähler einzufügen und die Leerzeilen einzusortieren:

Sub LeerZeilenEinsortieren()
'--- fügt alle 100 Zeilen 13 Leerzeien ein
Dim i As Long
Dim Anz As Long
With ActiveSheet.UsedRange
With .Columns(.Columns.Count).Offset(0, 1)
.Cells(1, 1).Value = 1
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1
Anz = .Cells(.Rows.Count, 1).Value
For i = 1 To 13
With .Cells(1, 1).End(xlDown).Offset(1, 0)
.Value = 100
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=100, Stop:=Anz
End With
Next
.CurrentRegion.Sort key1:=.Cells(1, 1), order1:=xlAscending, header:=xlNo
.EntireColumn.ClearContents
End With
End With
End Sub
Gruß Daniel
Anzeige
AW: Zeilen SCHNELL einfügen
25.10.2011 09:05:20
TommiH
Hallo Daniel,
die erste Variante hat eigentlich schon gereicht, damit ging es bei mir deutlich schneller, da musste ich mich in die kompliziertere gar nicht einarbeiten ;)
Danke!
Tommi
AW: Zeilen SCHNELL einfügen
25.10.2011 09:33:14
Daniel
Hi
solltest du aber.
der Vorteil meiner Methode ist, daß man sie bei beliebiger Datenmenge auch ohne VBA schnell und mit wenig aufwand anwenden kann.
dh. du kannst, wenns sein muss die Aufgabe auch mal lösen, ohne erst ein Makro schreiben zu müssen.
das Makro lohnt sich erst dann, wenn die Aufgabe wiederholt ausgeführt werden muss.
gruß, Daniel
AW: Zeilen SCHNELL einfügen
25.10.2011 09:37:01
TommiH
Hallo Daniel,
;) - okay, überzeugt (ich schaue es mir mal an), im Moment ist allerdings mein SeitenFormatProblem beim PDF-Ausdruck wichtiger - und - es geht um wiederkehrende Sachen, das ganze muss schließlich rund 700x ausgeführt werden...
Tommi
Anzeige
AW: Zeilen SCHNELL einfügen
25.10.2011 09:36:41
Daniel
außerdem, füge mal nicht alle 100 Zeilen 13 Zeilen ein, sondern nach jeder Zeile 1.
dann wirst du den Unterschied zwischen beiden Codes bemerken.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige