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

Zeilen nach unten verschieben

Forumthread: Zeilen nach unten verschieben

Zeilen nach unten verschieben
01.09.2008 16:20:00
KL
Hallo zusammen,
ich würde mich sehr freuen, wenn mir jemand bei der Lösung des nachstehenden Problems helfen könnte.
Für die Projektverwaltung eines Vereins brauche ich ein Kontenblatt ähnlich eines Kassenbuches.
Allerdings soll jeweils der letzte (aktuelle) Eintrag oben stehen.
Nach jedem Eintrag soll die Zeile um eine Zeile nach unten geschoben und somit die Eingabezeile wieder frei für die nächste Aktion werden.
Unter https://www.herber.de/bbs/user/55089.xls habe ich meinen Entwurf zur Verdeutlichung eingestellt.
Natürlich müssen noch die entsprechenden Formeln für die automatische Berechnung mit eingefügt werden.
Wie gesagt, es wäre sehr hilfreich, wenn mir kurzfristig jemand einen Tipp geben könnte. Besten Dank schon vorab.
Gruß aus München, KL List
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Kleines Makro
01.09.2008 16:42:33
Backowe
Hi,
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Code in das Tabellenblatt!
Application.EnableEvents = False
If Not Intersect(Target, Range("D7")) Is Nothing Then
  Range("D7").EntireRow.Insert shift:=xlDown
  Range("A" & Target.Row) = Range("A" & Target.Row + 1) + 1
  With Range("C" & Target.Row)
    .Value = Date
    .NumberFormat = "YYYY.MM.DD"
  End With
  Range("C8:D8").HorizontalAlignment = xlGeneral
End If
Application.EnableEvents = True
End Sub
Gruß Jürgen
AW: Zeilen nach unten verschieben
Hary

Hallo Kl
Was mir in diesem Forum beigebracht wurde: keine verbundenen Zellen. Dann wirds schwierig.
Hier ein Code. Sobald etwas in Zelle A1 eingetragen wird und der Focus raus geht dann wird eine Zeile darueber eingefuegt. Kannst Du auf einer leeren Mappe ausprobieren.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not IsNumeric(Cells(1, 1)) Then
Rows("1:1").Select
Selection.Insert Shift:=xlDown
End If
End Sub


Gruss Hary

AW: Zeilen nach unten verschieben
fcs

Hallo KL List,
https://www.herber.de/bbs/user/55091.xls
Hier deine Datei mit einem kleine Beispiel Makro.
Das Einfügen einer Leerzeile erfolgt nicht "automatisch" sondern nach Klick auf den Button.
Dazu wird die Zeile 7 kopiert, und vor Zeile 8 eingefügt. Danach werden in Zeile 7 die Inhalte in den Eingabezellen gelöscht.
Vorsicht beim Einbau von Formeln. Hierzu muss der Kopiervorgang ggf. angepasst werden. Meine Beispielformel für die Spalte "Stand" harmoniert mit dem programmierten Kopiervorgang.
Gruß
Franz
Alternatives Makro, das nach dem Einfügen der Leerzeile die Zeile 8 in die Zeile 7 kopiert, um die Formeln zu übernehmen.

Sub NeueEingabeZeile()
'neue Eingabezeile in Zeile 7 einfügen
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
'Leerzeile einfügen
.Rows(7).Insert shift:=xlShiftDown
'Zeile 8 nach zeile 7 kopieren
.Rows(8).Copy Destination:=.Rows(7)
'Inhalte in Eingabezellen Zeile 7 löschen
.Range(.Cells(7, 3), .Cells(7, 6)).ClearContents 'Spalten C bis F
.Cells(7, 8).ClearContents 'Spalten G
'neue Zeilennummer Spalte A Zeile 7 eintragen
.Range(.Cells(7, 3), .Cells(7, 6)).ClearContents 'Spalten C bis F
.Cells(7, 1).Value = Application.WorksheetFunction.Max(.Range(.Cells(8, 1), _
.Cells(.Rows.Count, 1).End(xlUp))) + 1
End With
End Sub


AW: Zeilen nach unten verschieben
KL

Herzlichen Dank an Franz, Hary und Jürgen für die schnelle Reaktion.
Franz, Deine Vorarbeit war ausgezeichnet, nach der kleinen Anpassung wie vorgeschlagen, funktioniert das jetzt so, wie ich es mir vorgestellt hatte.
Nochmals an Alle Danke für die Hilfe!
KL List
Anzeige
AW: Zeilen nach unten verschieben
01.09.2008 16:44:00
Hary
Hallo Kl
Was mir in diesem Forum beigebracht wurde: keine verbundenen Zellen. Dann wirds schwierig.
Hier ein Code. Sobald etwas in Zelle A1 eingetragen wird und der Focus raus geht dann wird eine Zeile darueber eingefuegt. Kannst Du auf einer leeren Mappe ausprobieren.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not IsNumeric(Cells(1, 1)) Then
Rows("1:1").Select
Selection.Insert Shift:=xlDown
End If
End Sub


Gruss Hary

Anzeige
AW: Zeilen nach unten verschieben
01.09.2008 17:14:00
fcs
Hallo KL List,
https://www.herber.de/bbs/user/55091.xls
Hier deine Datei mit einem kleine Beispiel Makro.
Das Einfügen einer Leerzeile erfolgt nicht "automatisch" sondern nach Klick auf den Button.
Dazu wird die Zeile 7 kopiert, und vor Zeile 8 eingefügt. Danach werden in Zeile 7 die Inhalte in den Eingabezellen gelöscht.
Vorsicht beim Einbau von Formeln. Hierzu muss der Kopiervorgang ggf. angepasst werden. Meine Beispielformel für die Spalte "Stand" harmoniert mit dem programmierten Kopiervorgang.
Gruß
Franz
Alternatives Makro, das nach dem Einfügen der Leerzeile die Zeile 8 in die Zeile 7 kopiert, um die Formeln zu übernehmen.

Sub NeueEingabeZeile()
'neue Eingabezeile in Zeile 7 einfügen
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
'Leerzeile einfügen
.Rows(7).Insert shift:=xlShiftDown
'Zeile 8 nach zeile 7 kopieren
.Rows(8).Copy Destination:=.Rows(7)
'Inhalte in Eingabezellen Zeile 7 löschen
.Range(.Cells(7, 3), .Cells(7, 6)).ClearContents 'Spalten C bis F
.Cells(7, 8).ClearContents 'Spalten G
'neue Zeilennummer Spalte A Zeile 7 eintragen
.Range(.Cells(7, 3), .Cells(7, 6)).ClearContents 'Spalten C bis F
.Cells(7, 1).Value = Application.WorksheetFunction.Max(.Range(.Cells(8, 1), _
.Cells(.Rows.Count, 1).End(xlUp))) + 1
End With
End Sub


Anzeige
AW: Zeilen nach unten verschieben
01.09.2008 19:56:00
KL
Herzlichen Dank an Franz, Hary und Jürgen für die schnelle Reaktion.
Franz, Deine Vorarbeit war ausgezeichnet, nach der kleinen Anpassung wie vorgeschlagen, funktioniert das jetzt so, wie ich es mir vorgestellt hatte.
Nochmals an Alle Danke für die Hilfe!
KL List
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zeilen nach unten verschieben in Excel


Schritt-für-Schritt-Anleitung

Um in Excel eine Zeile nach unten zu verschieben, kannst Du die folgenden Schritte durchführen:

  1. Markiere die Zeile: Klicke auf die Zeilennummer der Zeile, die Du nach unten verschieben möchtest.
  2. Rechtsklick: Mache einen Rechtsklick auf die markierte Zeile.
  3. Einfügen: Wähle „Einfügen“ aus dem Kontextmenü. Dies fügt eine neue leere Zeile oberhalb der markierten Zeile ein und verschiebt die Inhalte nach unten.
  4. Inhalte anpassen: Du kannst nun die Inhalte in der neuen Zeile bearbeiten.

Falls Du oft Zeilen verschieben musst, kannst Du auch eine Tastenkombination verwenden, um diesen Vorgang zu beschleunigen. Eine häufige Methode ist das Drücken von Strg + + (Plus-Taste), nachdem Du eine Zeile ausgewählt hast.


Häufige Fehler und Lösungen

  • Fehler: „Die Zeile kann nicht eingefügt werden.“

    • Lösung: Überprüfe, ob Du in einer geschützten Arbeitsmappe arbeitest. Deaktiviere den Schutz, um Änderungen vorzunehmen.
  • Fehler: „Verbundene Zellen können nicht verschoben werden.“

    • Lösung: Stelle sicher, dass Du keine verbundenen Zellen in der Zeile hast. Du kannst die verbundenen Zellen aufheben, um die Zeilen problemlos zu verschieben.

Alternative Methoden

Eine weitere Möglichkeit, Zeilen in Excel zu verschieben, ist die Verwendung von VBA-Makros. Wenn Du regelmäßig Zeilen automatisch verschieben möchtest, kannst Du ein einfaches Makro erstellen:

Sub NeueEingabeZeile()
    Dim wks As Worksheet
    Set wks = ActiveSheet
    With wks
        ' Leerzeile einfügen
        .Rows(7).Insert shift:=xlShiftDown
        ' Inhalte in der neuen Zeile löschen
        .Range(.Cells(7, 1), .Cells(7, 10)).ClearContents
    End With
End Sub

Dieses Makro fügt eine neue Zeile in Zeile 7 ein und löscht die Inhalte in dieser Zeile.


Praktische Beispiele

Ein häufiges Szenario ist das Einfügen von Zeilen in einem Kassenbuch. Angenommen, Du hast ein Kassenbuch, in dem Du jeden neuen Eintrag oben einfügen möchtest:

  1. Füge eine neue Zeile ein, indem Du die Schritte in der Schritt-für-Schritt-Anleitung befolgst.
  2. Kopiere die Formeln aus der vorherigen Zeile, um die Berechnungen fortzuführen.

Ein Beispiel für ein Makro, das dies automatisiert, könnte folgendermaßen aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not IsEmpty(Target) Then
        Rows(Target.Row).Insert Shift:=xlDown
    End If
End Sub

Tipps für Profis

  • Nutze die Tastenkombinationen: Wenn Du oft Zeilen verschiebst, kann die Nutzung von Tastenkombinationen wie Strg + + oder Strg + X (Ausschneiden) und Strg + V (Einfügen) viel Zeit sparen.

  • Makros für wiederkehrende Aufgaben erstellen: Wenn Du regelmäßig dieselben Schritte ausführst, hilft ein Makro, diese Automatisierung durchzuführen.

  • Achte auf die Sortierung Deiner Daten: Wenn Du Zeilen nach unten verschiebst, könnte die Sortierung der Daten betroffen sein. Überprüfe dies nach dem Verschieben.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeilen gleichzeitig nach unten verschieben?
Markiere die gewünschten Zeilen und führe dann einen Rechtsklick aus, um die „Einfügen“-Option zu wählen.

2. Gibt es eine Möglichkeit, Zeilen automatisch nach unten zu verschieben, wenn ich etwas eingebe?
Ja, Du kannst ein VBA-Makro verwenden, das die Zeilen automatisch verschiebt, sobald Du eine Eingabe machst.

3. Was passiert mit Formeln, wenn ich eine Zeile einfüge?
Formeln in den unteren Zeilen werden angepasst, um den neuen Zellbezug zu berücksichtigen, also achte darauf, dass alles korrekt bleibt.

4. Kann ich verbundene Zellen verschieben?
Es wird empfohlen, keine verbundenen Zellen zu verwenden, da dies die Bearbeitung und das Verschieben von Zeilen erschwert.

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