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

Forumthread: leeren Zeilen löschen und Inhalte hochschieben

leeren Zeilen löschen und Inhalte hochschieben
Chris
Hallo Leute,
ich benötige ein Makro, dass den Bereich A1:A10 auf leere Zellen untersucht, wenn gefunden, soll es den Inhalt dieser und die benachbarten zwei Zellen in derselben Reihe löschen. Ich habe mir folgendes Makro gebastelt, dass mir leider den gesamten Bereich löscht.....
Zusätzlich wäre es toll, wenn - nachdem die Inhalte gelöscht wurden - alle darunter liegenden Angaben (Gesamtbereich ist A1 bis D10) untereinander auflistet, d. h. hoch schiebt, so dass man keine leeren Zeilen dazwischen hat.
Ich hoffe das ist verständlich...hier mein Versuch, als VBA-Anfänger weiss ich leider nicht weiter.
Sub test()
Worksheets("Tabelle1").Select
Range("A1:A10").Select
For Each cell In Selection
If cell.Value = "a" Then
Range(Selection, Selection.Offset(0, 2)).ClearContents
End If
Next
End Sub

Anzeige

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

Betreff
Benutzer
Anzeige
AW: leeren Zeilen löschen und Inhalte hochschieben
17.06.2011 22:15:12
Rudi
Hallo,
wie soll man denn den Inhalt einer leeren Zelle löschen? Ne leere Dose auskippen geht doch nicht.
Oder sollen die Zellen gelöscht werden?
Gruß
Rudi
AW: leeren Zeilen löschen und Inhalte hochschieben
17.06.2011 22:22:05
Chris
Hallo Rudi,
hast Recht, habe mich falsch ausgedrückt.
So: Suche den Bereich A1:A10 nach leeren Zellen ab. Überall dort, wo eine leere Zelle in Spalte A ist, lösche nur die INHALTE der benachbarten zwei Zellen.... (clearcontents)...dann schiebe alle restlichen Zellen des Gesamtbereichs A1:D10 untereinander ohne leere Zeilen dazwischen.
:-)
Chris
Anzeige
immer noch nicht schlüssig
17.06.2011 22:30:38
Rudi
Hallo,
wenn jetzt aber z.B. A4 leer ist, man B4:C4 löscht, jedoch in D3:D4 was steht, wie soll man denn D4 hochschieben?
Teste das mal:
Sub xxx()
Dim r As Range, a As Range
Set r = Range("A1:A10").SpecialCells(xlCellTypeBlanks)
For Each a In r.Areas
a.Resize(, 3).Delete xlUp
Next a
End Sub

Gruß
Rudi
Anzeige
AW: immer noch nicht schlüssig
17.06.2011 22:43:21
Chris
Hi Rudi,
genau das, was ich brauche. Super. Deinen Einwand lass ich jetzt mal weg, hast es ja verstanden :-)
Hier mal mein erstes Makro, darfst auch Kopfschütteln...
'

Sub test()
'Worksheets("Tabelle1").Select
'Range("A1:A3").Select
'For Each cell In Selection
'If cell.Value = "" Then
'cell.Offset(0, 2).ClearContents
'End If
'Next
'End Sub
Immerhin habe ich es geschafft, dass die 2 Zellen neben der leeren gelöscht werden. Nur aus Neugier: Wie fügt man in meinem Makro die "schiebe alle restlichen Zellen nach oben"-Funktion ein?
Gruß,
Christ
Anzeige
AW: immer noch nicht schlüssig
17.06.2011 23:12:07
Chris
HI Rudi,
ich habe dein makro nochmal getestet, und stehe vor einem neuen Problem. Zur Lösung brauch ich folgendes, hoffe ich zumindest :-), ich bemühe mich so genau wie möglich zu sein.
Bedingt dadurch, dass alle anderen Zellen mit Inhalt nun nach oben rutschen, werden ja meine Zellen mit Inhalten insgesamt weniger. Löscht sich zum Beispiel A2, rutscht der Inhalt von A10 nach A9. Soweit ok. Nun sollen die Zellen nach dem letzten Eintrag immer mit "--" gefüllt werden, sodass man nach unten niemals leere Zellen hat. Beispiel:
Bereich A1:D4 Vor dem Zusammenschieben:
aa bb cc dd
XX cc dd ee (XX soll leere Zeile sein!!!)
aa dd ff gg
aa bb cc dd
daraus wird.
aa bb cc dd
aa dd ff gg
aa bb cc dd
-- -- -- --
Hoffe das ist verständlich. :-/ -)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Leere Zeilen löschen und Inhalte hochschieben in Excel


Schritt-für-Schritt-Anleitung

Um leere Zeilen in Excel zu löschen und die Inhalte nach oben zu verschieben, kannst du die folgende VBA-Anweisung verwenden:

  1. Öffne die Excel-Datei, in der du die leeren Zeilen löschen möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  4. Kopiere den folgenden Code in das Modul:
Sub LeereZeilenLoeschen()
    Dim r As Range, a As Range
    Set r = Range("A1:A10").SpecialCells(xlCellTypeBlanks)
    For Each a In r.Areas
        a.EntireRow.Delete
    Next a
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke ALT + F8, wähle LeereZeilenLoeschen und klicke auf Ausführen.

Dieser Code löscht alle leeren Zeilen im Bereich A1:A10. Um Inhalte in benachbarten Zellen zu löschen, kannst du den Code anpassen.


Häufige Fehler und Lösungen

  • Fehler: Der Code löscht nicht die erwarteten Zeilen.

    • Lösung: Stelle sicher, dass du den richtigen Zellbereich in Set r = Range("A1:A10") angibst.
  • Fehler: Es werden leere Zeilen nicht entfernt.

    • Lösung: Überprüfe, ob die Zellen tatsächlich leer sind oder nur Leerzeichen enthalten. Du kannst auch die Funktion Trim verwenden, um führende und nachfolgende Leerzeichen zu entfernen.

Alternative Methoden

  1. Manuelles Löschen:

    • Wähle die Zeilen aus, die du löschen möchtest, klicke mit der rechten Maustaste und wähle Zeilen löschen.
  2. Filter-Methode:

    • Setze einen Filter auf deine Daten und filtere die leeren Zeilen. Wähle die gefilterten Zeilen aus und lösche diese.
  3. Tastenkombination:

    • Markiere den gewünschten Bereich und drücke STRG + G, dann Sonderauswahl, wähle Leer aus und lösche die Zeilen.

Praktische Beispiele

Um mehrere leere Zeilen auf einmal zu löschen und die Daten nach oben zu verschieben, kannst du den folgenden VBA-Code verwenden:

Sub LeereZeilenZusammenSchieben()
    Dim rng As Range
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Set rng = Range("A1:A" & lastRow)

    rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    rng.Cells(1, 1).End(xlDown).Offset(1, 0).Value = "--"
End Sub

Dieser Code entfernt leere Zeilen und füllt die letzte Zeile mit "--" aus.


Tipps für Profis

  • VBA-Optimierung: Wenn du oft leere Zeilen löschen musst, kannst du die Makros so optimieren, dass sie dynamisch auf den gesamten Datenbereich zugreifen.
  • Automatisierung: Erstelle eine Schaltfläche in Excel, um dein Makro einfach auszuführen.
  • Datensicherung: Stelle sicher, dass du eine Sicherung deiner Daten hast, bevor du Massenänderungen vornimmst.

FAQ: Häufige Fragen

1. Wie entfernt man leere Zeilen in Excel?
Du kannst das oben beschriebene VBA-Makro verwenden oder die Filter- und Löschmethoden ausprobieren.

2. Was sind die besten Methoden, um leere Zellen automatisch zu löschen?
Die Verwendung von VBA ist eine der effizientesten Methoden, um leere Zellen automatisch zu löschen und die verbleibenden Daten hochzuschieben.

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