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

Zeile einfügen wenn Bedingung erfüllt ist.

Zeile einfügen wenn Bedingung erfüllt ist.
Arthur
Hallo zusammen
Ich habe hier eine riesige Liste mit vielen Spalten und vorallem Zeilen:
B1
012.03000
012.14570
025.25689
124.35689
124.47874
222.45788
222.68974
222.56897
also aufsteigend sortiert.
Wie kann ich ein Makro erstellen, dass in der Spalte B1 alles durchschaut und immer nach einer Gruppe z.B. 012......er "zwei Zeilen" einfügt, bevor dann die nächste Gruppe, alle 025.....er Einträge erscheinen.
Was dann so aussehen würde:
B1
012.03000
012.14570
025.25689
124.35689
124.47874
222.45788
222.68974
222.56897
Von Hand gehts natürlich, aber es sind mehrere 10'000 Zeilen... :-(
Kann mich damit jemand unterstützen, bin für jede Hilfe dankbar!
Vielen Dank
Arthur

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeile einfügen wenn Bedingung erfüllt ist.
17.04.2012 23:10:47
Dieter
Hallo Arthur,
du kannst das mit dem folgenden VBA-Programm machen:
Sub LeerzeilenEinfügen()
Dim altNr As String
Dim letzteZeile As Long
Dim neuNr As String
Dim ws As Worksheet
Dim zeile As Long
Set ws = ActiveSheet
altNr = Left$(ws.Range("B1"), 4)
zeile = 1
Do Until IsEmpty(ws.Cells(zeile, "B"))
neuNr = Left$(ws.Cells(zeile, "B"), 4)
If neuNr  altNr Then
' Leerzeile einfügen
ws.Rows(zeile).Resize(2).Insert
zeile = zeile + 1
altNr = neuNr
End If
zeile = zeile + 1
Loop
End Sub
Voraussetzung:
Die Daten beginnen in Spalte B in Zeile 1 und sind in Spalte B lückenlos.
Viele Grüße
Dieter
Anzeige
AW: Zeile einfügen wenn Bedingung erfüllt ist.
18.04.2012 18:26:10
Arthur
Vielen Dank Dieter
Es klappt, wow! Kannst du mir dieses Makro abändern, dass ich eine Range auswählen kann?
Die Daten fangen nicht bei B1 an, sondern von B6:B43563..
Geht das?
Gruss
Arthur
AW: Zeile einfügen wenn Bedingung erfüllt ist.
19.04.2012 08:38:58
Dieter
Hallo Arthur,
das Programm sieht dann folgendermaßen aus:
Sub LeerzeilenEinfügen()
Dim altNr As String
Dim anzLZ As Long       ' Anzahl der einzufügenden Leerzeilen
Dim letzteZeile As Long
Dim neuNr As String
Dim startZeile As Long
Dim ws As Worksheet
Dim zeile As Long
startZeile = 6
anzLZ = 2
Set ws = ActiveSheet
altNr = Left$(ws.Cells(startZeile, "B"), 4)
zeile = startZeile
Do Until IsEmpty(ws.Cells(zeile, "B"))
neuNr = Left$(ws.Cells(zeile, "B"), 4)
If neuNr  altNr Then
' Leerzeilen einfügen
ws.Rows(zeile).Resize(anzLZ).Insert
zeile = zeile + anzLZ
altNr = neuNr
End If
zeile = zeile + 1
Loop
End Sub
Über die Variable startZeile gibst du an, in welcher Zeile deine Daten beginnen. Mit Hilfe von anzLZ bestimmst du, wieviele Leerzeilen jeweils eingefügt werden sollen.
Viele Grüße
Dieter
Anzeige
AW: Zeile einfügen wenn Bedingung erfüllt ist.
18.04.2012 00:32:28
Reinhard
Hallo Arthur,
Sub tt()
Dim Zei As Long
Application.ScreenUpdating = False
For Zei = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
If Left(Cells(Zei, 2).Value, 3)  Left(Cells(Zei - 1, 2).Value, 3) Then
Rows(Zei & ":" & Zei + 1).Insert
End If
Next Zei
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
AW: Zeile einfügen wenn Bedingung erfüllt ist.
18.04.2012 18:31:51
Arthur
und es funktioniert!
Vielen vielen Dank.
Gruss
Arthur

148 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige