Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen in Tabelle verschieben mit VBA

Betrifft: Zeilen in Tabelle verschieben mit VBA von: Roman
Geschrieben am: 03.09.2020 11:37:44

Hallo Zusammen,

verwende folgendes Makro, um die Zeilen in einer Tabelle nach oben oder unten zu verschieben, ohne dabei andere Einträge zu löschen (weiß aber nicht, ob das der perfekte Code ist).

Das Problem ist, dass wenn ich die erste oder letzte Zeile verschieben möchte bzw. ausversehen versuche zu verschieben, kommt eine Fehlermeldung. Jetzt müsste in meinem Code der Anfang und das Ende der Tabelle definiert werden, denke irgendwas mit .End(xlUp) usw. Hier bin überfragt.

Hoffe, jemand von euch kann mir weiterhelfen und den Code vielleicht sogar optimieren, wenn etwas an ihm nicht passen sollte.

Danke im Voraus

Sub MoveDown()

Application.EnableEvents = False
Application.ScreenUpdating = False

Range(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 1).Cut 'Cut row below
ActiveCell.EntireRow.Insert Shift:=xlDown 'Paste
ActiveCell.Offset(1, 0).Select 'Move down to it

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub


Sub MoveUp()

Application.EnableEvents = False
Application.ScreenUpdating = False

If ActiveCell.Row > 1 Then
Range(ActiveCell.Row & ":" & ActiveCell.Row).Cut 'Cut active row
ActiveCell.Offset(-1, 0).Select 'Move up a row
ActiveCell.EntireRow.Insert Shift:=xlDown 'Paste
End If

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

Betrifft: AW: Zeilen in Tabelle verschieben mit VBA
von: Roman
Geschrieben am: 04.09.2020 09:24:53

Habe einen Fehler im Text. Wenn ich die letzte Zeile mit dem Makro verschiebe, wird die Tabelle einfach erweitert. Das soll verhindert werden.

Wenn ich die erste Zeile versuche nach oben zu verschieben, kommt eine Fehlermeldung (logisch, da ja versucht wird die Überschriften auszuschneiden)

Da meine Tabelle nummeriert ist, habe ich schon überlegt, den Wert der ersten Spalte von der nächsten Zeile abzufragen, ob dieser leer ist oder nicht. Und falls er leer ist, dass das Sub beendet wird. Komme aber mit meinem Halbwissen leider nicht weiter.

Betrifft: AW: Zeilen in Tabelle verschieben mit VBA
von: ChrisL
Geschrieben am: 04.09.2020 16:20:11

Hi

Wenn ich die erste Zeile versuche nach oben zu verschieben, kommt eine Fehlermeldung (logisch, da ja versucht wird die Überschriften auszuschneiden)
Die Aussage stimmt m.E. nicht, weil dies mit folgender Zeile bereits abgefangen wird:
If ActiveCell.Row > 1 Then
Dasselbe in Grün für MoveDown:
If ActiveCell.Row < Cells(Rows.Count, 1).End(xlUp).Row Then
cu
Chris

Beiträge aus dem Excel-Forum zum Thema "Zeilen in Tabelle verschieben mit VBA"