Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Leere Zeilen einfügen, wenn Änderung Wert

Leere Zeilen einfügen, wenn Änderung Wert
28.09.2014 20:59:22
Claudia
Hallo zusammen,
ich habe in einer Datei ca. 1000 Zeilen stehen (gefüllt von A bis ....). Solche Dateien mehrmals im Monat.
In Spalte A steht der entscheidende Ordnungsbegriff. Die Spalte A ist sortiert. Der Ordnungsbegriff kommt vielfach vor (kann aber auch nur einmal enthalten sein).
Damit man sich schneller ein Bild machen kann, welche Zeilen zusammen gehören, würde ich gerne nach jeder Wertänderung in Spalte A eine leere Zeile einfügen.
Wer kann mir hier mit VBA unter die Arme greifen?
Vielen lieben Dank!
Claudia

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeilen einfügen, wenn Änderung Wert
28.09.2014 21:07:32
{Boris}
Hi Claudia,
...würde ich gerne nach jeder Wertänderung ...
Wie geschieht diese Wertänderung?
Und wozu soll es dann eine neue Zeile geben?
Beschreib mal etwas genauer, was da passieren soll. Am Besten mit einem kleinen Beispiel.
VG, Boris

AW: Leere Zeilen einfügen, wenn Änderung Wert
28.09.2014 21:27:06
Claudia
Hallo Boris,
vielen Dank dass du mir helfen möchtest.
Wertänderung ist der falsche Begriff. Ich bekomme die Datei so geliefert.
Und bevor ich die Einträge anschaue, würde ich gerne eine Trennung per
Leerer Zeile haben.
Liebe Grüße
Claudia

Anzeige
Ich versteh kein Wort...
28.09.2014 21:28:52
{Boris}
Hallo Claudia,
...kannst Du nicht mal ein kleines Beispiel schildern?
VG, Boris

AW: Ich versteh kein Wort...
28.09.2014 21:36:21
Claudia
Ok, hier mal eine Datei mit zwei Reitern.
Der zweite Reiter ist so wie ich die Darstellung haben möchte.
https://www.herber.de/bbs/user/92861.xlsx

Anzeige
AW: Ich versteh kein Wort...
28.09.2014 21:36:25
Claudia
Ok, hier mal eine Datei mit zwei Reitern.
Der zweite Reiter ist so wie ich die Darstellung haben möchte.
https://www.herber.de/bbs/user/92861.xlsx

AW: Ich versteh kein Wort...
28.09.2014 21:57:49
{Boris}
Hi Claudia,
jetzt versteh ich, was Du meinst. Allerdings ist das gegen jeden guten Excelstil, eine zusammenhängende Liste zu "zerstückeln".
Was spricht gegen eine bedingte Formatierung - ich hab Dir das mal in das Blatt "Falsch" eingebaut.
https://www.herber.de/bbs/user/92863.xlsx
VG, Boris

Anzeige
AW: Ich versteh kein Wort...
28.09.2014 22:08:02
Daniel
Hi
Wenn du der Übersichtlichkeit halber einer Leerzeile zwischen den Gruppen haben willst, dann kannst du die so einfügen:
1. Kopiere die Daten der Spalte A.
2. Füge die kopierten Werte am Ende von Spalte A wieder ein.
3. Wende auf die neu eingefügten Daten die Funktion Daten-Datentools-DuplikateEntfernen an.
4. sortiere die ganze Tabelle nach der Spalten A.
Gruß Daniel

Anzeige
AW: Ich versteh kein Wort...
28.09.2014 22:12:18
{Boris}
Hi Daniel,
Wenn du der Übersichtlichkeit halber einer Leerzeile zwischen den Gruppen haben willst
Ich mag mich vielleicht irren, aber ich denke, dadurch sind die nächsten Probleme vorprogrammiert ("Basiskenntnisse").
Daher mein (eher gut gemeinter) Hinweis.
VG, Boris

Anzeige
Abgesehen mal davon, dass bei Daniels ...
28.09.2014 23:13:44
Luc:-?
…Lösung dann ja noch die überzähligen Bezeichnungen in Spalte A entfernt wdn müssten, Boris,
pflichte ich dir bei, sonst hätte ich ja auch so etwas (anwendbar aufs Original bzw Daniels Lösungs­ergebnis) empfehlen können, falls das letztlich auf tabellen­analoges Listen-Design hinauslaufen sollte… ;-)
Gruß, Luc :-?

Anzeige
AW: überzählige Bezeichnungen in Spalte A entf.
29.09.2014 13:04:13
Daniel
für jemanden der den Autofilter kennt (und der gehört für mich zu den Basiskenntnissen) eine leichte Übung.
ich würde die Überzähligen Bezeichenungen in Spalte A aber drin lassen, damit die Tabelle sortier- und filterbar bleibt.
Gruß Daniel

Tja, was gehört zu 'Xl-BasisKenntnisse'? ;-)
29.09.2014 13:31:37
Luc:-?
Und was wird mit dieser BlockVereinzelung wirklich bezweckt, Daniel;
nur Übersichtlichkeit? Dafür gibt's auch noch unterschiedl starke ZellRahmen, differierende ZellFarben (Boris) u.a. TabellenDesigns, abgesehen mal von Pivot & Co. Aber das hattest du ja auch angedeutet.
So (mit Leerzeile) wdn eigentl mehrere Tabellen draus.
Das Filtern wird durch die Leerzeilen ja nicht gestört. Die Wiederholung des Textes in der A-Leerzeile ist also nur sinnvoll, wenn die Leerzeile mitgefiltert wdn soll, um diese Struktur auch beim Filtern beizubehalten.
Gruß, Luc :-?

Anzeige
Noch eine VBA-Alternative
28.09.2014 22:17:54
{Boris}
Hi Claudia,
wenn die Daten immer in A2 beginnen (A1 ist also die Überschrift):
Option Explicit
Sub blockweise_faerben()
Dim C As Range
For Each C In Range("A3:A" & Range("A3").End(xlDown).Row)
If C = C.Offset(-1) Then
C.Resize(1, C.End(xlToRight).Column).Interior.ColorIndex = C.Offset(-1).Interior. _
ColorIndex
Else
C.Resize(1, C.End(xlToRight).Column).Interior.ColorIndex = IIf(C.Offset(-1).Interior. _
ColorIndex = xlNone, 6, xlNone)
End If
Next C
End Sub
Ich bleib dabei, dass die Leerzeilen nicht wirklich gut sind.
VG, Boris

Anzeige
AW: Ich versteh kein Wort...
29.09.2014 00:14:42
Mullit
Hallo,
da haben die anderen Kollegen natürlich recht;
wenn Du doch noch ein Zerstücklungsvariante suchst, dann:
Option Explicit
Public Sub prcHannibalLecter()
Dim lngIndex As Long, lngCount As Long
Application.ScreenUpdating = False
With ActiveSheet
For lngIndex = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(lngIndex + lngCount, 1)  .Cells(lngIndex + lngCount - 1, 1) Then
.Cells(lngIndex + lngCount, 1).EntireRow.Insert Shift:=xlShiftDown, CopyOrigin:= _
xlFormatFromLeftOrAbove
lngCount = lngCount + 1
End If
Next
End With
Application.ScreenUpdating = True
End Sub

Gruß,
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Leere Zeilen einfügen bei Wertänderung in Excel


Schritt-für-Schritt-Anleitung

Um in Excel automatisch leere Zeilen einzufügen, wenn sich der Wert in einer bestimmten Spalte ändert, kannst du VBA (Visual Basic for Applications) nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere und füge den folgenden VBA-Code in das Modul ein:

    Option Explicit
    Public Sub LeereZeileEinfügen()
       Dim lngIndex As Long, lngCount As Long
       Application.ScreenUpdating = False
       With ActiveSheet
           For lngIndex = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
               If .Cells(lngIndex, 1) <> .Cells(lngIndex - 1, 1) Then
                   .Cells(lngIndex + lngCount, 1).EntireRow.Insert Shift:=xlShiftDown
                   lngCount = lngCount + 1
               End If
           Next lngIndex
       End With
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle LeereZeileEinfügen aus und klicke auf Ausführen, um die leeren Zeilen einzufügen.

Mit diesem Skript wird nach jeder Änderung in der Spalte A eine Leerzeile eingefügt.


Häufige Fehler und Lösungen

  • Fehler: Es werden keine leeren Zeilen eingefügt.

    • Lösung: Stelle sicher, dass die Daten in Spalte A beginnen und dass die letzte Zeile korrekt erkannt wird. Prüfe auch, ob das Makro korrekt ausgeführt wird.
  • Fehler: Makro läuft langsam.

    • Lösung: Deaktiviere die Bildschirmaktualisierung am Anfang des Codes mit Application.ScreenUpdating = False und aktiviere sie am Ende wieder. Dies verbessert die Ausführungsgeschwindigkeit.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du manuell leere Zeilen einfügen:

  1. Kopiere die Daten in Spalte A.
  2. Füge die kopierten Daten am Ende von Spalte A wieder ein.
  3. Nutze die Funktion Daten > Datentools > Duplikate entfernen, um die Duplikate zu entfernen.
  4. Sortiere die Tabelle nach Spalte A.

Diese Methode erfordert mehr manuelle Schritte als das Skript.


Praktische Beispiele

Hier sind einige Beispiele, wie du die oben genannten Methoden anwenden kannst:

  • Beispiel 1: Du hast eine Liste von Produkten und deren Verkaufszahlen. Um die Produkte zu gruppieren, kannst du nach jedem Produkt eine leere Zeile einfügen, was dir bei der Auswertung hilft.

  • Beispiel 2: In einer lange Liste von Kundenanfragen möchtest du nach jeder Kategorie eine Leerzeile einfügen, um die Übersichtlichkeit zu verbessern.


Tipps für Profis

  • Nutze bedingte Formatierungen, um die Übersichtlichkeit zu erhöhen, ohne leere Zeilen einzufügen.
  • Experimentiere mit Excel-Tabellen, um die Datenfilterung und Sortierung zu erleichtern, anstatt die Struktur mit leeren Zeilen zu stören.
  • Überlege, ob Pivot-Tabellen eine bessere Lösung für deine Datenanalyse wären.

FAQ: Häufige Fragen

1. Kann ich die leeren Zeilen automatisch nach bestimmten Kriterien einfügen? Ja, du kannst den VBA-Code anpassen, um leere Zeilen basierend auf spezifischen Kriterien einzufügen, wie zum Beispiel nur nach bestimmten Werten in einer anderen Spalte.

2. Welche Excel-Version wird benötigt? Der VBA-Ansatz funktioniert in den meisten modernen Excel-Versionen (Excel 2010 und neuer). Achte darauf, dass Makros aktiviert sind.

3. Wie kann ich die leeren Zeilen wieder entfernen? Du kannst die leeren Zeilen manuell löschen oder ein weiteres VBA-Skript erstellen, das alle leeren Zeilen entfernt.

4. Ist es möglich, mehrere leere Zeilen einzufügen? Ja, du kannst den Code anpassen, um mehrere leere Zeilen einzufügen, indem du die Schleife entsprechend änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige