Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1216to1220
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

Leerzeile autom. einfügen

Leerzeile autom. einfügen
Stefan
Hallo zusammen,
ich habe eine Excel-Liste, in der die Zeilen von 1 bis ca. 10000 gefüllt sind. In Spalte F befindet sich bei einigen Zeilen (ca. 4000 Stück) ein X, durch das ein bestimmtes Kriterium erfüllt wird. Nun möchte ich durch ein Makro über jede Zeile, die in Spalte F ein X enthält, automatisch eine Leerzeile einfügen lassen.
Danke für Eure Unterstützung.
Gruß,
Stefan

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
z.B. mit einer Schleife ...
30.05.2011 18:19:01
Matthias
Hallo Stefan
hier eine Variante
Sub MyNewRow()
Dim X&
Application.ScreenUpdating = False
For X = 10000 To 1 Step -1 'höchste Zeile anpassen!
If Cells(X, "F") = "X" Then
Rows(X).Insert Shift:=xlDown
End If
Next
MsgBox "fertig"
End Sub
statt:
Cells(X, "F")
geht auch:
Cells(X, 6)
Userbild
AW: Leerzeile autom. einfügen
30.05.2011 18:20:21
dave
Hi Stefan.
so sollte es gehen:
Option Explicit
Sub leerzeilen()
Dim i
Application.ScreenUpdating = False
Application.EnableEvents = False
For i = Range("F65536").End(xlUp).Row To 1 Step -1
If LCase(Cells(i, 6).Value) = "x" Then
Rows(i).EntireRow.Insert
i = i - 1
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Ab Xl2007 statt F65636 dann 1 Mio ... irgendwas. Wenn du sicher bist, dass NIE mehr als x Zeilen vorhanden sind, dann diese z. Bsp. 5000.
Gruß
David
Anzeige
AW: Leerzeile autom. schnell einfügen
30.05.2011 23:54:51
Daniel
Hi
das einzelen Einfügen von Zeilen ist bei dieser Datenmenge viel zu langsam.
Schneller ist, die Leerzeilen einzusortieren.
Das macht dieses Makro:
Sub test()
With ActiveSheet.UsedRange
With .Columns(.Columns.Count).Offset(0, 1)
.Cells(1, 1).Value = 0
.Offset(1, 0).Resize(.Rows.Count - 1, 1).FormulaR1C1 = "=R[-1]C+(RC6=""x"")"
.Formula = .Value
With .Cells(.Rows.Count, 1).Offset(1, 0).Resize(WorksheetFunction.Max(.Cells))
.FormulaR1C1 = "=R[-1]C-1"
.Cells(1, 1).FormulaR1C1 = "=R[-1]C-.5"
.Formula = .Value
End With
.CurrentRegion.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlNo
.EntireColumn.ClearContents
End With
End With
End Sub

Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige