Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellinhalte sollen nachrücken wenn vordere leer

Forumthread: Zellinhalte sollen nachrücken wenn vordere leer

Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 13:48:00
Jürgen
Hallo Excel Profis,
durch einen Import einer RTF-Datei habe ich eine Tabelle in der die ersten vier Spalten wie die Daten Name1; Name2; Name3 und Name4 enthalten. Die Felder Name 1 sind immer gefüllt. Nun kann es aber sein, dass Name 2 und Name 3 nicht gefüllt sind, dafür aber Name 4. Auch kann es sein, dass Name 1 und 2 gefüllt sind nicht aber Name 3. Name 4 ist aber gefüllt.
Mein Wunsch wäre, dass per Makro erkannt wird, dass z.B. Name 2 und 3 nicht gefüllt sind. Hier soll dann Name 4 in das Feld Name 2 vorrücken.
Genauso auch im zweiten Beispiel. hier war Name 3 nicht gefüllt und es soll Name 4 nach Name 3 "wandern".
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Kann mir hier jemand helfen? Das wäre prima.
Gruß Jürgen
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 14:20:45
Mac4
Hallo Jürgen,
versuchs mal hiermit:

Sub test()
Dim maxzl As Long, maxsp As Long
maxzl = Cells.Find("*", searchdirection:=xlPrevious).Row
maxsp = Cells.Find("*", searchdirection:=xlPrevious, searchorder:=xlByColumns).Column
Range(Cells(1, "A"), Cells(maxzl, maxsp)).SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
End Sub


Marc

Anzeige
AW: Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 15:12:00
Jürgen
Hallo Marc,
vom Prinzip funktioniert das klasse. Leider habe ich vergessen zu erwähnen, dass nach den Feldern Name in Spalte E die Daten weitergehen, diese aber auf keinen Fall verändert, sprich verschoben werden dürfen.
Hättest Du hierzu vielleichtr auch eine Lösung?
Gruß Jürgen
AW: Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 15:18:06
Mac4
Hallo Jürgen,
dann reicht es schon so:

Sub test()
Dim maxzl As Long
maxzl = Cells.Find("*", searchdirection:=xlPrevious).Row
Range(Cells(1, "A"), Cells(maxzl, "D")).SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
End Sub


Marc

Anzeige
AW: Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 15:30:44
Jürgen
Hallo Marc,
habe das Skript ausprobiert aber keinen anderen Effekt erhalten wie das erste.
Die Felder E und aufsteigend verschieben sich weiterhin nach links.
Mache ich was falsch?
Gruß Jürgen
AW: Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 15:43:23
Mac4
Hi Jürgen,
nee, Du machst leider nichts falsch - ich habe nicht zuende überlegt! Das hole ich jetzt nach!
Marc
Anzeige
AW: Zellinhalte sollen nachrücken wenn vordere leer
02.09.2008 21:06:59
Jürgen
Hallo Marc,
habe einen "Workaround" gefungen.
Ich kopiere die 4 Spalten in ein temporäres Arbeitsblatt, lass Dein Makro rüberlaufen und kopiere danach die Spalten in die Tabelle zurück.
Ich danke Dir sehr für Deine Hilfe.
Gruß Jürgen
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalte nachrücken in Excel: So funktioniert's


Schritt-für-Schritt-Anleitung

Um Zellinhalte in Excel nachrücken zu lassen, wenn vorherige Felder leer sind, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung:

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

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

  3. Füge den folgenden VBA-Code in das Modul ein:

    Sub ZellinhalteNachruecken()
        Dim maxzl As Long
        maxzl = Cells.Find("*", searchdirection:=xlPrevious).Row
        Range(Cells(1, "A"), Cells(maxzl, "D")).SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro über ALT + F8 aus und wähle ZellinhalteNachruecken.

Diese Methode verschiebt die Daten in den Spalten A bis D nach links, wenn in diesen Zellen Leerwerte vorhanden sind.


Häufige Fehler und Lösungen

  • Problem: Die Daten in den Spalten E und darüber hinaus verschieben sich ebenfalls nach links.

    • Lösung: Stelle sicher, dass du den Bereich im Code entsprechend anpasst. Der Code in der Schritt-für-Schritt-Anleitung ist so eingestellt, dass nur die ersten vier Spalten bearbeitet werden.
  • Problem: Das Makro funktioniert nicht wie erwartet.

    • Lösung: Überprüfe, ob in den zu bearbeitenden Zellen tatsächlich leere Werte vorhanden sind. Wenn nicht, wird das Makro keine Änderungen vornehmen.

Alternative Methoden

Falls du kein Makro verwenden möchtest, kannst du auch die Funktion FILTER in Excel 365 oder Excel 2021 nutzen, um leere Zellen zu ignorieren. Hier ist ein Beispiel:

  1. Angenommen, deine Daten liegen in den Zellen A1:D10.
  2. Verwende die folgende Formel in einer neuen Zelle:

    =FILTER(A1:D10, A1:D10<>"")

Diese Methode erstellt eine neue Liste ohne leere Zellen, ohne dass du VBA verwenden musst.


Praktische Beispiele

Angenommen, du hast folgende Daten in den Zellen A1 bis D1:

Name1 Name2 Name3 Name4
Max Müller
Anna Schmidt
Weber

Nach der Ausführung des Makros oder der Verwendung der FILTER-Funktion würde das Ergebnis so aussehen:

Name1 Name2 Name3
Max Müller
Anna Schmidt
Weber

Tipps für Profis

  • Nutze die IFERROR-Funktion in Kombination mit FILTER, um Fehler zu vermeiden, wenn keine Daten vorhanden sind.
  • Experimentiere mit bedingter Formatierung, um leere Zellen hervorzuheben, bevor du dein Makro ausführst.
  • Erstelle eine Schaltfläche in Excel, um dein Makro schnell auszuführen.

FAQ: Häufige Fragen

1. Frage
Was passiert mit den Daten in den Spalten nach D?
Antwort: Die Daten in den Spalten E und darüber hinaus bleiben unverändert, wenn das Makro korrekt implementiert wird.

2. Frage
Kann ich das Makro auch für andere Bereiche verwenden?
Antwort: Ja, passe einfach die Zellbereiche im VBA-Code an, um andere Spalten oder Zeilen zu berücksichtigen.

3. Frage
Wie kann ich meine Daten sichern, bevor ich das Makro ausführe?
Antwort: Erstelle eine Kopie deines Arbeitsblatts, bevor du das Makro ausführst, um sicherzustellen, dass keine Daten verloren gehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige