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

Automatisch leere Zeile einfügen

Automatisch leere Zeile einfügen
14.04.2015 16:26:57
Oliver
Hallo zusammen
Ich habe eine Tabelle mit 13 Spalten und sehr vielen zeilen,
in Spalte 6 (also F) stehen zahlen untereinander z.B.
208
208
208
208
301
301
301
455
455
455
455
455
455
Diese zahlen wiederholen sich unterschiedlich oft.
Ich will das sich nach jeden wechsel der Zahl automatisch eine leere zeile einfügt.
Die leere Zeile soll sich nur auf die Zeile F beziehen.In den anderen Spalten stehen u. a. Datum, Zahlen und Buchstaben
208
208
208
208
301
301
301
455 usw.
weiss jemand wie ich das bewerkstelligen kann
danke schon mal im vorraus
Gruss oli

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das ist missverständlich
14.04.2015 16:39:10
lupo1
Soll es schon bei der Eingabe passieren? Dann brauchst Du ein VBA-Ereignis.
Soll die Spalte F woanders in Deinem Sinne korrigiert gezeigt werden, um sie ggflls damit überzukopieren? Dann könnte es mit einer Formel klappen.

3. Weg: Spezialfilter o Duplikate
14.04.2015 16:50:56
lupo1
Deine Zahlen scheinen aufsteigend zu sein.
Dann verwende auf Deine F-Werte den Spezialfilter mit Zielbereich ohne Duplikate (bitte lies Dich anderswo dazu ein).
Den Zielbereich hängst Du an F an und sortierst das so verlängerte F. Nun:
X2: =WENN(F2F3;"";F2) runterkopieren der Länge F nach
Jetzt kannst Du die Spalte X kopieren und auf F deren Inhalte-Einfügen/Werte.

Anzeige
AW: Automatisch leere Zeile einfügen
14.04.2015 16:49:45
Peter
Hallo oli,
das könnte z. B. so funktionieren
Public Sub einfuegen()
Dim lZeile  As Long
With ThisWorkbook.Worksheets("Tabelle1")
For lZeile = .Cells(.Rows.Count, 6).End(xlUp).Row To 2 Step -1
If .Range("F" & lZeile).Value  .Range("F" & lZeile - 1).Value Then
Range("F" & lZeile).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next lZeile
End With
End Sub

Gruß Peter

AW: Automatisch leere Zeile einfügen
14.04.2015 16:50:07
Peter
Hallo oli,
das könnte z. B. so funktionieren
Public Sub einfuegen()
Dim lZeile  As Long
With ThisWorkbook.Worksheets("Tabelle1")
For lZeile = .Cells(.Rows.Count, 6).End(xlUp).Row To 2 Step -1
If .Range("F" & lZeile).Value  .Range("F" & lZeile - 1).Value Then
Range("F" & lZeile).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next lZeile
End With
End Sub

Gruß Peter

Anzeige
AW: Automatisch leere Zeile einfügen
14.04.2015 17:00:44
Daniel
Hi
geht ganz einfach:
1. Kopiere die Zahlen Spalte F mit allen Zahlen und füge sie nach der letzten befüllten Spalte am Tabellenende ein
2. Kopiere die Zahlen der Spalte F nochmal und füge unterhalb der neuen Spalte nochmal ein (dort steht jetzt der Inhalt der Spalte F 2x untereinander
3. wende auf die zuletzt eingefügten Werte (also die zweite Hälfte, diese sollte nach dem Einfügen noch markiert sein) die Funktion: DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit der Einstellung "keine Überschrift"
4. sortiere die ganze Tabelle nach der neuen Spalte (mit den neu hinzugefügten Zeilen!)
5. lösche die neue Spalte wieder
das funktioniert, weil beim Sortieren von mehrern gleichen Werten die Reihenfolge untereinander erhalten bleibt und so die Zeilen aus dem unteren Bereich (die ja bis zur neuen Hifsspalte leer sind), auch am Ende der Gruppe einsortiert werden.
Gruß Daniel

Anzeige
das gilt, wenn F sortiert ist
14.04.2015 17:04:24
lupo1
Ansonsten geht das mit Datentools natürlich viel schicker als mit meinem Lotus-staubigen Spezialfilter ;)

AW: das gilt, wenn F sortiert ist
14.04.2015 17:28:18
Daniel
Hi
das "Einsortieren" der Leerzeilen geht auch, wenn die Daten "unsortiert" sind und wenn eine Gruppe mehrfach mit Unterbrechungen vorkommen kann.
Dann muss man nur die ersten Schritte etwas abändern.
man kopiert nicht Spalte F, sondern fügt in die Hilfsspalte am Tabellenende ab Zeile 2 folgende Formel ein (Hilfsspalte sei X):
=Wenn(F2=F1;X1;X1+1) oder kürzer: =X1+(F2F1)
diese Formel zieht man bis ans Dantenende, kopierst sie und fügt sie an gleicher Stelle als Wert ein.
dann kopiert man diese Spalten nochmal und fügt sie am Ende der Hilfsspalte nochmal ein.
dann wie gehabt weiter, Duplikate in der zweiten Hälfte entfernen und dann sortieren.
Dabei bleibt dann die Originalsortierung der Tabelle auf jeden Fall erhalten.
das dürfte bei grösseren Tabellen deutlich schneller sein als das zeilenweise einfügen.
Gruß Daniel

Anzeige
Einspruch ...
14.04.2015 17:31:45
lupo1
Es gibt keine Tabelle. Es gibt nur eine einzelne Spalte, und die sortiert sich nur nach sich selbst. Daher Sortierung schon maßgebend. Abhilfe: Eine Hilfsspalte in die Sortierung mit einbeziehen.
Aber vermutlich irrelevant, da F aufsteigend sortiert. Sonst wäre das Beispiel ja völlig missraten.

AW: Einspruch ...
14.04.2015 17:39:05
Daniel
falls es dir nicht aufgefallen ist, eine Hilfsspalte habe ich schon im ersten Lösungsvorschlag verwendet (die muss wieder gelöscht werden, sonst klappt das mit den Leerzeilen nicht, bzw nur unvollständig)
Gruß Daniel

Ok, magst recht haben.
14.04.2015 17:47:47
lupo1
"Bitte Geduld beim Absenden" lesen - gilt auch für Dich.

Anzeige
und für Dich gilt-kein AW-Fehler!!!!!!!!!
14.04.2015 17:58:15
robert
...100 %

Huch ... da ist einer angefasst ...
14.04.2015 18:05:20
lupo1
Mehr als ein ! deutet definitiv auf Ärger hin, der dadurch immer entsteht, dass man nur schreibt, statt miteinander spricht. ;)
Würdest Du in die gedoppelten Beiträge schauen, gäbst Du mir recht. Auch hier. Und die beschriebene Ungeduld der Doppiker kann ich verstehen, da ich bei einem Reply auch 2 Minuten unten "Warten auf Server Herber.de" sah. Ich hatte nur das Glück, gleich beim ersten Mal darauf zu achten, und ging im Browser eine Seite zurück.

und Du bist unbelehrbar und ungläubig ! owT
14.04.2015 18:14:53
robert

Mit dem Glauben hat das ...
14.04.2015 18:43:15
lupo1
... nicht wirklich zu tun. Ich bin guter Dinge, und verwende immer nur ein "!" - wenn überhaupt.

Anzeige
AW: Einspruch ...
14.04.2015 17:39:14
Daniel
falls es dir nicht aufgefallen ist, eine Hilfsspalte habe ich schon im ersten Lösungsvorschlag verwendet (die muss wieder gelöscht werden, sonst klappt das mit den Leerzeilen nicht, bzw nur unvollständig)
Gruß Daniel

AW: Automatisch leere Zeile einfügen
14.04.2015 17:00:49
Daniel
Hi
geht ganz einfach:
1. Kopiere die Zahlen Spalte F mit allen Zahlen und füge sie nach der letzten befüllten Spalte am Tabellenende ein
2. Kopiere die Zahlen der Spalte F nochmal und füge unterhalb der neuen Spalte nochmal ein (dort steht jetzt der Inhalt der Spalte F 2x untereinander
3. wende auf die zuletzt eingefügten Werte (also die zweite Hälfte, diese sollte nach dem Einfügen noch markiert sein) die Funktion: DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit der Einstellung "keine Überschrift"
4. sortiere die ganze Tabelle nach der neuen Spalte (mit den neu hinzugefügten Zeilen!)
5. lösche die neue Spalte wieder
das funktioniert, weil beim Sortieren von mehrern gleichen Werten die Reihenfolge untereinander erhalten bleibt und so die Zeilen aus dem unteren Bereich (die ja bis zur neuen Hifsspalte leer sind), auch am Ende der Gruppe einsortiert werden.
Gruß Daniel

Anzeige
AW: Automatisch leere Zeile einfügen
14.04.2015 17:04:37
Peter
Hallo oli,
um das Makro mehrfach laufen lassen zu können, werden zuerst bereits vorhandene Leerzellen gelöscht.
Gruß Peter
Public Sub einfuegen()
Dim lZeile  As Long
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
'        evtl. vorhandene leere Zellen in Spalte F löschen um erneut Leerzellen einfügen zu kö _
nnen
For lZeile = .Cells(.Rows.Count, 6).End(xlUp).Row To 1 Step -1
If .Range("F" & lZeile).Value = "" Then .Range("F" & lZeile).Delete shift:=xlUp
Next lZeile
'        wenn ein Gruppenwechsle vorliegt, wird eine leere Zelle eingefügt
For lZeile = .Cells(.Rows.Count, 6).End(xlUp).Row To 2 Step -1
If .Range("F" & lZeile).Value  .Range("F" & lZeile - 1).Value Then
Range("F" & lZeile).Insert shift:=xlDown
End If
Next lZeile
End With
End Sub

Anzeige
AW: Automatisch leere Zeile einfügen
14.04.2015 17:16:14
Daniel
Hi
geht ganz einfach:
1. Kopiere die Zahlen Spalte F mit allen Zahlen und füge sie nach der letzten befüllten Spalte am Tabellenende ein
2. Kopiere die Zahlen der Spalte F nochmal und füge unterhalb der neuen Spalte nochmal ein (dort steht jetzt der Inhalt der Spalte F 2x untereinander
3. wende auf die zuletzt eingefügten Werte (also die zweite Hälfte, diese sollte nach dem Einfügen noch markiert sein) die Funktion: DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit der Einstellung "keine Überschrift"
4. sortiere die ganze Tabelle nach der neuen Spalte (mit den neu hinzugefügten Zeilen!)
5. lösche die neue Spalte wieder
das funktioniert, weil beim Sortieren von mehrern gleichen Werten die Reihenfolge untereinander erhalten bleibt und so die Zeilen aus dem unteren Bereich (die ja bis zur neuen Hifsspalte leer sind), auch am Ende der Gruppe einsortiert werden.
Gruß Daniel

Anzeige
AW: Automatisch leere Zeile einfügen
14.04.2015 17:28:04
Oliver
Sorry, der passus mit " soll sich nur auf die Zeile F beziehen" war nicht so glücklich gewählt.
ich meinte die leere Zeile soll sich nur einfügen wenn sich der wert in Zeile F ändert.
Änderungen in den anderen zeilen sollen sich nicht auswirken.
Mfg

AW: Automatisch leere Zeile einfügen
14.04.2015 17:30:16
Daniel
Hi
das habe ich schon so verstanden und berücksichtigt.
probiere es einfach mal aus.
wenns nix ist einfach nicht speichern (oder sowieso erstmal ne Kopie anlegen)
Gruß Daniel

AW: Automatisch leere Zeile einfügen
14.04.2015 22:00:21
Oliver
Danke schon mal für die Tipps, werd morgen alle mal auspropieren. mit einem wirds schon klappen.
Gruss und Dank
Oli

98 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige