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

Forumthread: Alle Zeilen mit Inhalt ab Cursor eine Zeile tiefer

Alle Zeilen mit Inhalt ab Cursor eine Zeile tiefer
20.05.2019 17:18:53
Anton
Hallo Leute,
ich versuche schon seit Stunden eine VBA Code hinzubekommen, der alle Zeilen ab der Zeile, wo man sich mit dem Cursor befindet, bis zum letzten untersten Zeile mit Inhalt markiert, kopiert und eine Zeile tiefer einfügt.
Einfach eine Zeile einfügen, funktioniert deswegen nicht, da weiter rechts in den Spalten Formeln hinterlegt sind, die ich nicht verschieben will.
Hier kurz bildlich dargestellt:
Userbild
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: warum nicht einfach Zellen einfügen?
20.05.2019 17:28:06
neopa
Hallo Anton,
... die Zellen (und nur die) mit Textwerten der 1. Textzeile markieren und Zellen mit der Option "Zellen nach unten verschieben" einfügen.
Gruß Werner
.. , - ...
AW: warum nicht einfach Zellen einfügen?
20.05.2019 21:07:10
Anton
Wenn man Zeilen verschiebt und nicht kopiert, verschiebt man doch auch die Formeln, die sich in den Spalten rechts daneben befinden.
Ich will es aber so hinbekommen, dass die Formeln da erhalten bleiben. Denn dort wo die Zelle B13 frei wird, soll wieder Text rein und die Formeln müssen da schon existieren und dürfen nicht manuell nachgetragen werden.
Gibt es denn die Möglichkeit? Mit dem Makro Aufzeichnen werden ja bloß die absoluten Zeilen gewählt. Muss aber dynamisch sein. Da direkt von dort runter gezählt werden soll, wo der Cursor steht, also die aktuell aktive Zelle.
Anzeige
AW: Zeilen werden damit nicht verschoben owT
20.05.2019 21:16:37
neopa
Gruß Werner
.. , - ...
AW: Zeilen werden damit nicht verschoben owT
21.05.2019 16:10:31
Anton
Ich habe gestern nicht richtig gelesen. Da hast du "Zellen" und nicht "Zeilen" geschrieben. Daher ging meine Antwort etwas vorbei :)
Allerdings hab ich es auch so getestet, wie du es beschrieben hast, dabei verschiebt sich der Formelbezug.
Ich habe mal eine Datei erstellt, ich hoffe das kann das etwas besser verdeutlichen, was ich genau meine.
https://www.herber.de/bbs/user/129934.xlsx
Im ersten Blatt sieht man ein Beispiel, wie es zu Beginn aussieht. Anschließend soll man die Möglichkeit haben dort wo bereits Texte verfasst sind, weitere Texte hinzuzufügen. Dies will ich erreichen, indem die Texte darunter eine Zeile tiefer gehen, aber die Formeln den gleichen Zeilenbezug haben und alle Zeilen bis zum letzten Text verformelt sind.
Anzeige
AW: dann würde ich die Formel(n) anpassen ...
21.05.2019 16:29:25
neopa
Hallo Anton,
... in Deinem Beispiel in C9 so:
=WENN(INDEX(B:B;)"";LÄNGE(INDEX(B:B;))-LÄNGE(WECHSELN(INDEX(B:B;);" ";))+1;"")
und diese weit genug nach unten kopieren.
Gruß Werner
.. , - ...
AW: dann würde ich die Formel(n) anpassen ...
22.05.2019 15:55:04
Anton
Hallo Werner,
das mit dem Index funktioniert sehr gut - das ist sogar besser als wie ich mir das vorgestellt habe.
Ich habe da noch eine Formel, die den Bezug zu Zeile darüber sucht.
Mit ein bisschen Recherche habe ich aber mit der folgenden Formel zumindest aktuell gute Ergebnisse.
=INDEX(D:D;ZEILE()-1)
Danke erst mal für die Mühe, muss jetzt etlichen Zellen in "index" unwandeln :)
Anzeige
AW: bitteschön owT
22.05.2019 19:08:46
neopa
Gruß Werner
.. , - ...
;
Anzeige
Anzeige

Infobox / Tutorial

Alle Zeilen mit Inhalt ab Cursor eine Zeile tiefer verschieben


Schritt-für-Schritt-Anleitung

Um alle Zeilen mit Inhalt ab der aktuellen Cursorposition um eine Zeile tiefer zu verschieben, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-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 Code in das Modul ein:

    Sub ZeilenAbCursorVerschieben()
       Dim rng As Range
       Dim lastRow As Long
       Dim currRow As Long
    
       ' Aktuelle Zeile ermitteln
       currRow = ActiveCell.Row
       ' Letzte Zeile mit Inhalt ermitteln
       lastRow = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
    
       ' Bereich definieren
       Set rng = Range(Cells(currRow, 1), Cells(lastRow, Columns.Count)).SpecialCells(xlCellTypeConstants)
    
       ' Inhalte kopieren und eine Zeile tiefer einfügen
       rng.Copy
       rng.Offset(1, 0).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
       Application.CutCopyMode = False
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Platziere den Cursor in die Zelle, ab der du die Zeilen verschieben möchtest.

  6. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.


Häufige Fehler und Lösungen

  • Problem: Der Excel cursor verschiebt das Blatt nicht korrekt.

    • Lösung: Stelle sicher, dass du die richtige Zelle mit dem Cursor ausgewählt hast, bevor du das Makro ausführst.
  • Problem: Die Formeln in den rechten Spalten verschieben sich.

    • Lösung: Der bereitgestellte VBA-Code kopiert nur die Inhalte und lässt die Formeln unverändert.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch eine manuelle Methode ausprobieren:

  1. Wähle die Zellen ab der Zeile, wo der Cursor steht, bis zur letzten Zeile mit Inhalt aus.
  2. Klicke mit der rechten Maustaste und wähle Kopieren.
  3. Klicke mit der rechten Maustaste auf die Zelle unterhalb der Auswahl und wähle Einfügen.
  4. Lösche die ursprünglichen Inhalte, um Platz zu schaffen.

Diese Methode kann jedoch zu Problemen führen, wenn Formeln in den angrenzenden Zellen vorhanden sind.


Praktische Beispiele

Angenommen, dein Excel-Blatt sieht so aus:

A B C
Text1 1 =A1
Text2 2 =A2
Text3 3 =A3

Wenn du den Cursor in Zelle A1 platzierst und das Makro ausführst, wird das Blatt folgendermaßen aussehen:

A B C
Text1 1 =A1
Text2 2 =A2
Text3 3 =A3

Die Formeln in Spalte C bleiben unverändert, während die Texte nach unten verschoben werden.


Tipps für Profis

  • Nutze die Undo-Funktion (STRG + Z), um Änderungen schnell rückgängig zu machen, falls etwas schiefgeht.
  • Teste das Makro zuerst in einer Kopie deiner Datei, um sicherzustellen, dass es wie gewünscht funktioniert.
  • Du kannst den VBA-Code erweitern, um auch leere Zellen zu berücksichtigen oder nur bestimmte Spalten zu bearbeiten.

FAQ: Häufige Fragen

1. Muss ich VBA aktivieren, um das Makro auszuführen? Ja, stelle sicher, dass Makros in deinen Excel-Sicherheitseinstellungen aktiviert sind.

2. Kann ich das Makro auf eine bestimmte Spalte beschränken? Ja, du kannst den Bereich im VBA-Code anpassen, um nur bestimmte Spalten zu berücksichtigen.

3. Funktioniert das in allen Excel-Versionen? Der bereitgestellte VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2016, 2019 und Microsoft 365.

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